LeetCode 435. 无重叠区间
#
思路#
贪心算法
因为区间的右边界end越小,可以给后面留到的空间就越大。所以按照区间的右边界从小到大进行排序,每次都选右边界最小并且左边界大于前一个区间右边界的区间,最后可以累加得到最大不重叠区间的个数m,最后用总区间个数-m即为要删去的最小区间数。
1 class Solution { 2 private: 3 // 调用类内的函数必须需要对象才可以,所以比较器应该定义为static的 4 // a[0]表示区间a的左边界,a[1]表示区间a右边界 5 static bool cmp(vector<int> a, vector<int> b) { 6 return a[1] < b[1]; 7 } 8 public: 9 int eraseOverlapIntervals(vector<vector<int>>& intervals) { 10 if(intervals.size() <= 1) { 11 return 0; 12 } 13 sort(intervals.begin(), intervals.end(), cmp); 14 // m表示最大不重叠区间的个数 15 int m = 1; 16 int pre = 0; 17 for(int i = 1; i < intervals.size(); ++i) { 18 // 后一个区间的左边界 >= 前一个区间的右边界 19 if(intervals[i][0] >= intervals[pre][1]) { 20 m++; 21 pre = i; 22 } 23 } 24 25 return intervals.size() - m; 26 27 } 28 };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2018-11-05 Linux 文件目录结构