当前位置:网站首页>[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;
}
};
边栏推荐
- 发现一个很好的 Solon 框架试手的教学视频(Solon,轻量级应用开发框架)
- Cocos2dx Lua registers the touch event and detects whether the click coordinates are within the specified area
- Ue4/ue5 illusory engine, material part (III), material optimization at different distances
- UE fantasy engine, project structure
- C # perspective following
- Redis has four methods for checking big keys, which are necessary for optimization
- PMP考生,请查收7月PMP考试注意事项
- Kali 2018 full image download
- Ue4/ue5 illusory engine, material chapter, texture, compression and memory compression and memory
- China polyurethane rigid foam Market Research and investment forecast report (2022 Edition)
猜你喜欢

用 Jmeter 工具做个小型压力测试

Embedded database development programming (VI) -- C API

Collapse of adjacent vertical outer margins

Count sort

Use of snippets in vscode (code template)

TF-A中的工具介绍

Ue4/ue5 illusory engine, material part (III), material optimization at different distances

GBase数据库助力湾区数字金融发展

2022年上半年国家教师资格证考试

支持多模多态 GBase 8c数据库持续创新重磅升级
随机推荐
C # perspective following
Quick sort summary
Cocos2dx Lua registers the touch event and detects whether the click coordinates are within the specified area
Pause and resume of cocos2dx Lua scenario
JVM call not used once in ten years
3dsmax scanning function point connection drawing connection line
TF-A中的工具介绍
[turn]: OSGi specification in simple terms
对象的序列化
PMP考试敏捷占比有多少?解疑
Generate filled text and pictures
嵌入式数据库开发编程(零)
Shell Sort
质量体系建设之路的分分合合
Bucket sort
《动手学深度学习》学习笔记
3dsmax common commands
Listview pull-down loading function
用 Jmeter 工具做个小型压力测试
[轉]: OSGI規範 深入淺出