当前位置:网站首页>[interval problem] 435 Non overlapping interval
[interval problem] 435 Non overlapping interval
2022-07-05 05:16:00 【lee2813】
One 、 subject
Given a set of intervals , Find the minimum number of intervals to remove , Keep the remaining intervals from overlapping .
Be careful :
It can be said that the end of an interval is always greater than its starting point .
Section [1,2] and [2,3] The boundaries of each other “ Contact ”, But there is no overlap .
Example 1:
Input : [ [1,2], [2,3], [3,4], [1,3] ]
Output : 1
explain : remove [1,3] after , There's no overlap in the rest .
Example 2:
Input : [ [1,2], [1,2], [1,2] ]
Output : 2
explain : You need to remove two [1,2] So that the rest of the intervals don't overlap .
Example 3:
Input : [ [1,2], [2,3] ]
Output : 0
explain : You don't need to remove any intervals , Because they are already non overlapping .
Two 、 Answer key
This problem involves removing the minimum number of intervals , Analysis leads to , To make the last number of intervals reserved more , As long as the value at the end of each interval is small enough . therefore , The greedy strategy is to preferentially keep the disjoint intervals with small endings .
- First , Sort each interval according to the element at the end of the interval ( Ascending )
- then , Compare the end element value of the interval with the start value to judge whether the interval intersects , Until the end of the comparison interval
The determination of the intersection of intervals in this question :
Start from the end of the first interval , Compare with the starting element of the next interval , If the starting element of the next interval is less than prev1, Then it means that the next interval overlaps with it , discarded . In this way, it is compared with the starting element of the lower interval in turn , Until the starting element of the next interval is greater than prev1, Description no overlap , to update prev2 Is the end element of the interval , cycle .
3、 ... and 、 Code
class Solution {
public:
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
if(intervals.empty()) return 0;
int n = intervals.size();
sort(intervals.begin(),intervals.end(),[](vector<int>&a,vector<int>&b){
return a[1]<b[1];
});
int total = 0,prev = intervals[0][1];
for(int i = 1;i<n;i++){
if(intervals[i][0]<prev) total++;
else prev = intervals[i][1];
}
return total;
}
};
边栏推荐
- FVP和Juno平台的Memory Layout介绍
- Listview pull-down loading function
- 十年不用一次的JVM调用
- Optimization scheme of win10 virtual machine cluster
- How much do you know about 3DMAX rendering skills and HDRI light sources? Dry goods sharing
- National teacher qualification examination in the first half of 2022
- Development error notes
- 【Leetcode】1352. Product of the last K numbers
- Unity card flipping effect
- Cocos progress bar progresstimer
猜你喜欢
3dsmax scanning function point connection drawing connection line
Generate filled text and pictures
远程升级怕截胡?详解FOTA安全升级
Unity3d learning notes
Quick sort summary
National teacher qualification examination in the first half of 2022
用 Jmeter 工具做个小型压力测试
[转]MySQL操作实战(一):关键字 & 函数
[turn to] MySQL operation practice (I): Keywords & functions
[转]: OSGI规范 深入浅出
随机推荐
MD5 bypass
How much do you know about 3DMAX rendering skills and HDRI light sources? Dry goods sharing
Reverse one-way linked list of interview questions
Es module and commonjs learning notes
django连接数据库报错,这是什么原因
PR first time
Unity connects to the database
2022/7/2做题总结
Es module and commonjs learning notes -- ESM and CJS used in nodejs
Cocos progress bar progresstimer
Animation
Optimization scheme of win10 virtual machine cluster
C语言杂谈1
A complete attack chain
[轉]: OSGI規範 深入淺出
Time format conversion
2022/7/1學習總結
2020-10-27
Out and ref functions of unity
Leetcode word search (backtracking method)