Leetcode 435. Non-overlapping Intervals题解
来源:互联网 发布:人工智能论文2000字 编辑:程序博客网 时间:2024/05/29 15:10
435. Non-overlapping Intervals
- Total Accepted: 1112
- Total Submissions: 3007
- Difficulty: Medium
- Contributors: love_FDU_llp
Given a collection of intervals, find the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping.
Note:
- You may assume the interval's end point is always bigger than its start point.
- Intervals like [1,2] and [2,3] have borders "touching" but they don't overlap each other.
Example 1:
Input: [ [1,2], [2,3], [3,4], [1,3] ]Output: 1Explanation: [1,3] can be removed and the rest of intervals are non-overlapping.
Example 2:
Input: [ [1,2], [1,2], [1,2] ]Output: 2Explanation: You need to remove two [1,2] to make the rest of intervals non-overlapping.
Example 3:
Input: [ [1,2], [2,3] ]Output: 0Explanation: You don't need to remove any of the intervals since they're already non-overlapping.
解题思路:
本题即为在一个时间段内能安排最大活动数的简单变形。应用贪心的思想,首先将所有的interval按照结束时间排序,然后找到所有时间不重叠的interval。再用interval的总数减去不重叠的interval的数目即可。
代码展示:
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */ #include <algorithm> using namespace std;class Solution {public: bool cmp(Interval t1 , Interval t2) { return t1.end<t2.end; } void mysort(vector<Interval>& intervals,int n) { for(int i=0;i<n;i++) { Interval m = intervals[i]; int min_index=i; for(int j=i+1;j<n;j++) { if(cmp(intervals[j],intervals[min_index])) { min_index =j; m = intervals[j]; } } intervals[min_index] = intervals[i]; intervals[i] = m; } } int eraseOverlapIntervals(vector<Interval>& intervals) { int n= intervals.size(); if(!n) return 0; mysort(intervals,n); int count=1; int e = intervals[0].end; for(int i=1;i<n;i++) { if(intervals[i].start>=e) { count++; e=intervals[i].end; } } return n-count; }};
0 0
- Leetcode 435. Non-overlapping Intervals题解
- LeetCode 435. Non-overlapping Intervals
- leetcode 435. Non-overlapping Intervals
- [Leetcode] 435. Non-overlapping Intervals
- 【LeetCode】 435. Non-overlapping Intervals
- Leetcode 435. Non-overlapping Intervals
- LeetCode 435. Non-overlapping Intervals
- [leetcode]435. Non-overlapping Intervals
- leetcode-435. Non-overlapping Intervals
- [LeetCode]435. Non-overlapping Intervals
- Leetcode 435. Non-overlapping Intervals
- LeetCode 435. Non-overlapping Intervals
- LeetCode 435. Non-overlapping Intervals
- 【LeetCode】435. Non-overlapping Intervals
- LeetCode 435. Non-overlapping Intervals
- LeetCode 435. Non-overlapping Intervals
- LeetCode 435. Non-overlapping Intervals
- leetcode 435. Non-overlapping Intervals
- eclipse+Maven管理Spark项目
- 30天自制操作系统-第2天
- 数组
- 1+2+3+...+100 不允许使用乘法和除法,条件分支循环等
- 阿里巴巴2014秋招笔试题
- Leetcode 435. Non-overlapping Intervals题解
- shell脚本编程(三)——变量、常量和函数
- C++ 应用程序无法正常启动程序0xc00007b
- codevs 3955 最长严格上升子序列(加强版)(DP)
- LeetCode No.106 Construct Binary Tree from Inorder and Postorder Traversal
- Activity1
- 总结
- TCP 的那些事儿(下)
- JS 提交form表单