当前位置:网站首页>移除区间(贪心)
移除区间(贪心)
2022-06-25 14:20:00 【我不是萧海哇~~~~】
2.区间问题
给定多个区间,计算让这些区间互不重叠所需要移除区间的最少个数。
起止相连不算重叠。
输入输出样例
输入是一个数组,数组由多个长度固定为2的数组组成,表示区间的开始和结尾。
输出一个整数,表示需要移除的区间数量。
Input:[[1,2],[2,4],[1,3]]
output: 1
在这个样例中,我们可以移除区间[1,3],使得剩余的区间[[1,2],[2,4]]互不重叠。
题解
在选择要保留区间时,间的结尾十分重要:选择的区间结尾越小,余留给其它区间的空间就越大,就越能保留更多的区间。
因此,我们采取的贪心策略为,优先保留结尾小且不相交的区间。具体实现方法为,先把区间按照结尾的大小进行增序排序,每次选择结尾最小且和前一个选择的区间不重叠的区间。在样例中,排序后的数组为[[1,2],[1,3],[2,4]]。按照我们的贪心策略,首先初始化为区间[1,2];由于[1,3]与[1,2]相交,我们跳过该区间;由于[2,4]与[1,2]不相交,我们将其保留。因此最终保留的区间为[[1,2],[2,4]]。
Code:
bool ccm(const vector<int>&v1,const vector<int>&v2)
{
return v1[1]<v2[1];
}
int remo(vector<vector<int>>&vec)
{
// vector<vector<int>>res;
//按照数组区间结尾排序
int res=0;
sort(vec.begin(),vec.end(),ccm);
for(int i=0;i<vec.size();i++)
{
vector<int>sub=vec[i];
for(int j=0;j<sub.size();j++)
{
cout<<sub[j]<<" ";
}
cout<<endl;
}
int pre=vec[0][1];
for(int i=1;i<vec.size();i++)
{
if(vec[i][0]>=pre)
{
res++;
pre=vec[i][1];
}
}
return vec.size()-res;
}
边栏推荐
- 哈希錶、哈希沖突
- Is qiniu regular? Is it safe to open a stock account?
- "Mobile cloud Cup" computing power network application innovation competition is in hot registration!
- 成员变量与局部变量的区别
- Stream竟然还有应用进阶学习?作为程序员的你知道吗
- Async await to achieve sleep waiting effect
- [world history] Episode 1: people in the Stone Age
- Settings the PC must be turned on
- shell 变量 入门
- Is it unsafe to make new debts
猜你喜欢
Pourquoi les programmeurs devraient - ils être plus doux?
使用调试工具调试博图TCP连接所遇到的问题
Windows下MySQL的安装和删除
JS component
Page 112 machine learning - review of fundamentals of mathematics pptx
JS recursion and while
Experts' suggestions | 8 measures to accelerate your innovative career planning and growth
Shell array
Suanli & NFT trading platform f3 The exclusive NFT project of XYZ, hash eagle, will be grandly launched
关于win10 版本kicad 卡死的问题, 版本6.x
随机推荐
分享自己平時使用的socket多客戶端通信的代碼技術點和軟件使用
Basic usage of markdown (plain text and grammar)
Let and const commands
Extend JS copy content to clipboard
Stream竟然还有应用进阶学习?作为程序员的你知道吗
Shell operator
k线图24种经典图解(影线篇)
Kubernetes cluster construction of multiple ECS
完整详细的汇编实验报告
分享自己平时使用的socket多客户端通信的代码技术点和软件使用
JVM 用工具分析OOM经典案例
Two common ways for orcale to clear table data
"Mobile cloud Cup" computing power network application innovation competition is in hot registration!
shell 字符串变量
Getting started with numpy Library
What are the red lines of open source that should not be trodden on?
It's not easy to understand the data consistency of the microservice architecture for the first time after six years as a programmer
[untitled]
重磅!国产 IDE 发布,由阿里研发,完全开源!(高性能+高定制性)
电脑必须打开的设置