代码随想录算法训练营Day30

server/2025/1/24 8:23:07/

第八章 贪心算法 part04

今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。 都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙

这种题还是属于那种,做过了也就会了,没做过就很难想出来。

不过大家把如下三题做了之后, 重叠区间 基本上差不多了

452. 用最少数量的箭引爆气球

代码随想录

class Solution {
public:static bool cmp(const vector<int> a,const vector<int> b){return a[0]<b[0];}int findMinArrowShots(vector<vector<int>>& points) {if(points.size()==0) return 0;sort(points.begin(),points.end(),cmp);int result=1;for(int i=1;i<points.size();i++){if(points[i][0]>points[i-1][1]) result++;else{points[i][1]=min(points[i-1][1],points[i][1]);}}return result;}
};

435. 无重叠区间

代码随想录

class Solution {
public:static bool cmp(const vector<int> a,const vector<int> b){return a[0]<b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end(),cmp);int count=0;for(int i=1;i<intervals.size();i++){if(intervals[i-1][1]<=intervals[i][0]) continue;else{count++;intervals[i][0]=max(intervals[i][0],intervals[i-1][0]);intervals[i][1]=min(intervals[i][1],intervals[i-1][1]);}}return count;}
};

763.划分字母区间

代码随想录

class Solution {
public:vector<int> partitionLabels(string s) {vector<int> result;int hash[27]={0};for(int i=0;i<s.size();i++){hash[s[i]-'a']=i;}int left=0,right=0;for(int i=0;i<s.size();i++){right=max(right,hash[s[i]-'a']);if(i==right){result.push_back(right-left+1);left=i+1;}}return result;}
};


http://www.ppmy.cn/server/160977.html

相关文章

insight在线需求分析系统概要介绍

&#x1f680; 提升项目效率和产品质量&#xff0c;从需求分析开始 —— Insight 需求分析工具&#xff0c;让产品规划从未如此简单&#xff01; 在当今快节奏的商业环境中&#xff0c;项目管理的成功与否往往取决于需求分析的精准度和管理的高效性。无论是软件开发、产品设计…

文献阅读 250123-Accelerated dryland expansion under climate change

Accelerated dryland expansion under climate change 来自 <Accelerated dryland expansion under climate change | Nature Climate Change> 气候变化下旱地加速扩张 来自 <Accelerated dryland expansion under climate change | Nature Climate Change> ## Int…

Linux 主流桌面环境及其默认应用大横评

Linux 提供了多种桌面环境&#xff0c;它们各有特色&#xff0c;适应不同的用户需求。以下将从环境介绍和默认应用两个方面详细解析几种常见的桌面环境&#xff0c;帮助用户选择最适合的系统环境。 1. GNOME 环境介绍 GNOME 是目前最流行的桌面环境之一&#xff0c;以其现代化…

实战演示:利用ChatGPT高效撰写论文

在当今学术界&#xff0c;撰写论文是一项必不可少的技能。然而&#xff0c;许多研究人员和学生在写作过程中常常感到困惑和压力。幸运的是&#xff0c;人工智能的快速发展为我们提供了新的工具&#xff0c;其中ChatGPT便是一个优秀的选择。本文将通过易创AI创作平台&#xff0c…

Django 日志配置实战指南

日志是 Django 项目中不可或缺的一部分,它帮助我们记录应用程序的运行状态、调试信息、错误信息等。通过合理配置日志,我们可以更好地监控和调试应用程序。本文将详细介绍如何在 Django 项目中实现日志文件分割、日志级别控制以及多环境日志配置,并结合最佳实践和代码示例,…

solidity基础 -- 存储类型

在Solidity智能合约开发中&#xff0c;存储类型是一个至关重要的概念。它不仅影响合约的性能&#xff0c;还决定了数据的存储位置和生命周期。Solidity提供了三种主要的存储类型&#xff1a;storage、memory和calldata。本文将结合给定的代码示例&#xff0c;并通过更多实例详细…

Java 大视界 -- Java 大数据中的数据脱敏技术与合规实践(60)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

翻译:How do I reset my FPGA?

文章目录 背景翻译&#xff1a;How do I reset my FPGA?1、Understanding the flip-flop reset behavior2、Reset methodology3、Use appropriate resets to maximize utilization4、Many options5、About the author 背景 在写博客《复位信号的同步与释放&#xff08;同步复…