LeetCode 435. 无重叠区间(贪心/动态规划)

文章目录

    • 1. 题目
    • 2. 解题
      • 2.1 贪心
      • 2.2 动态规划

1. 题目

给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠

注意:
可以认为区间的终点总是大于它的起点。
区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。

示例 1:
输入: [ [1,2], [2,3], [3,4], [1,3] ]
输出: 1
解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:
输入: [ [1,2], [1,2], [1,2] ]
输出: 2
解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。示例 3:
输入: [ [1,2], [2,3] ]
输出: 0
解释: 你不需要移除任何区间,因为它们已经是无重叠的了。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/non-overlapping-intervals
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 贪心

  • 按照结束位置升序排序
  • 找到 满足prev[end] <= next[start]的下一个,更新prev为next
  • 寻找下一个next,这些找到的是无重叠的最长的区间长度
class Solution {
public:int eraseOverlapIntervals(vector<vector<int>>& intervals) {if(intervals.empty()) return 0;sort(intervals.begin(), intervals.end(),[&](auto a, auto b){return a[1] < b[1];});int i, count = 1, n = intervals.size();vector<int> prev(intervals[0]);for(i = 1; i < n; ++i){if(prev[1] <= intervals[i][0]){count++;prev = intervals[i];}}return n-count;}
};

2.2 动态规划

  • 按照区间的起点位置升序排序
  • 然后状态方程 dp[i]=max(dp[i],dp[j]+1),ifprev[j][1]<=cur[i][0]dp[i] = max(dp[i], dp[j]+1), if \quad prev[j][1] <= cur[i][0]dp[i]=max(dp[i],dp[j]+1),ifprev[j][1]<=cur[i][0]
class Solution {
public:int eraseOverlapIntervals(vector<vector<int>>& intervals) {if(intervals.empty()) return 0;sort(intervals.begin(), intervals.end(),[&](auto a, auto b){return a[0] < b[0];});vector<int> dp(intervals.size(),1);int i, j, maxlen = 1;for(i = 1; i < intervals.size(); ++i){j = i-1;while(j>=0 && intervals[j][1] > intervals[i][0])j--;if(j >= 0)dp[i] = max(dp[i], dp[j]+1);maxlen = max(maxlen, dp[i]);}return intervals.size()-maxlen;}
};

168 ms 25.3 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDP广播包的研究

一直以来听的多了&#xff0c;什么UDP广播之类的&#xff0c;不过自己一直没有试验过&#xff0c;这次闲来无聊&#xff0c;于是测试了一下。网上说的其实并不是非常的正确&#xff0c;流传着不少的错误言论&#xff0c;这次自己动手测试了一下&#xff0c;没想到比我想象中的还…

php传递字符串给python,用PHP和Python生成短链接服务的字符串ID

假设你想做一个像微博短链接那样的短链接服务&#xff0c;短链接服务生成的URL都非常短例如: http://t.cn/E70Piib, 我们应该都能想到链接中的E70Piib对应的就是存储长链接地址的数据记录的ID&#xff0c;可是这个有大小写字母和数字构成的唯一ID是怎么生成的呢&#xff0c;刚学…

LeetCode 433. 最小基因变化(广度优先搜索)

1. 题目 一条基因序列由一个带有8个字符的字符串表示&#xff0c;其中每个字符都属于 “A”, “C”, “G”, "T"中的任意一个。 假设我们要调查一个基因序列的变化。一次基因变化意味着这个基因序列中的一个字符发生了变化。 例如&#xff0c;基因序列由"AAC…

JCP执行委员会新成员选举结果揭晓:Hologic未获通过

转载于:https://www.cnblogs.com/mixer/archive/2010/11/09/2448777.html

matlab fig生成exe,MATLAB GUI多个m文件和fig如何生成exe文件

&#xff0b;文件。命令的格式为&#xff1a;mcc[-option]fun[fun2...][mexfile1.....&#xff0b;文件。命令的格式为&#xff1a;mcc[-option]fun[fun2...][mexfile1.....function start_Callback(hObject, eventdata, handle...你的意思是&#xff1a;多个m文件导成一个吗&a…

Eclipse 编写代码自动提示设置

很多人不知道Eclipse如何开启代码助手的自动提示功能&#xff0c;只是使用Eclipse默认的输入了“.”之后才会出现提示。实际上可以输入任何字符的时候都可以给出提示。 设置如下: 打开 Eclipse -> Window -> Perferences&#xff0c;会打开个Perferences 的设置界面。 打…

LeetCode 436. 寻找右区间(二分查找)

1. 题目 给定一组区间&#xff0c;对于每一个区间 i&#xff0c;检查是否存在一个区间 j&#xff0c;它的起始点大于或等于区间 i 的终点&#xff0c;这可以称为 j 在 i 的“右侧”。 对于任何区间&#xff0c;你需要存储的满足条件的区间 j 的最小索引&#xff0c;这意味着区…

老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)

C语言经典算法 - 老鼠走迷官(一)说明老鼠走迷宫是递回求解的基本题型&#xff0c;我们在二维阵列中使用2表示迷宫墙壁&#xff0c;使用1来表示老鼠的行走路径&#xff0c;试以程式求出由入口至出口的路径。解法老鼠的走法有上、左、下、右四个方向&#xff0c;在每前进一格之后…

LeetCode 491. 递增子序列(回溯+判重剪枝)

1. 题目 给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明: 给定数组的长度不会超过15。 数组中的整数范…

[网络收集]Web.config配置文件详解

摘录自&#xff1a;http://hi.baidu.com/fanfanwuji/blog/item/a7fd8928d49a7ef098250a06.html 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法。很适合新手参看&#xff0c;由于Web.config在使用很灵活&#xff0c;可以自定义一些节点。所以这里只介绍一些比较…

python怎么写方程条件,条件方程曲线拟合

在xmin处多项式的导数0的条件可以表示为一个简单的约束&#xff0c;这意味着变量p2&#xff0c;p3&#xff0c;和{}实际上并不独立。衍生条件是p2 2*p3*xmin 3*p4*xmin**2 0其中xmin是xdata的最小值。此外&#xff0c;xmin将在fit之前知道(如果不一定是在编写脚本时)&#x…

LeetCode 525. 连续数组(前缀和+哈希)

1. 题目 给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组&#xff08;的长度&#xff09;。 示例 1: 输入: [0,1] 输出: 2 说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2: 输入: [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的…

SQL Server常用的系统存储过程应用实例(转)

摘要&#xff1a;Sql Server自带的系统存储过程有许多&#xff0c;但大部分我们是不常用的。我在实践中根据自己的体会&#xff0c;总结整理了一些比较常用的&#xff0c;加上一些实例介绍给大家。本期介绍&#xff1a; l sp_attach_db l sp_attach_single_fil…

angular 权限 php,PHP,Angular,HTACCESS-仅允许来自源域的请求

我完成了我的角度项目。在我的项目中&#xff0c;我向PHP文件发送带有数据的POST请求&#xff0c;然后将结果返回给Angular。现在我只允许来自源域的请求&#xff0c;并拒绝来自任何域的请求。我尝试使用:header("Access-Control-Allow-Origin: example.com");但不管…

LeetCode 516. 最长回文子序列(动态规划)

1. 题目 给定一个字符串s&#xff0c;找到其中最长的回文子序列。可以假设s的最大长度为1000。 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bbbb"。示例 2: 输入: "cbbd" 输出: 2 一个可能的最长回文子序列为 "bb"…

点击图片,AJAX删除后台图片文件

点击页面上的图片&#xff0c;用jQuery的AJAX来删除后台真实的文件。包含了2个页面&#xff0c;一个是显示图片的页面&#xff0c;一个是传递文件名&#xff0c;然后删除真实图片的页面。具体的代码如下&#xff1a;ShowPics.htm:<!DOCTYPE html PUBLIC "-//W3C//DTD X…

granule size oracle,_ksmg_granule_size oracle内存分配粒度

_ksmg_granule_size oracle内存分配粒度_ksmg_granule_size:内存分配粒度大小oracle内存分配的最小单位&#xff0c;最终分配的内存数量都是这个参数的整数倍10g中这个参数的大小一般遵循如下原则&#xff1a;– sga_max_size < 1024M then _ksmg_granule_size 4M- sga_ma…

LeetCode 第 26 场双周赛(363/1971,前18.4%)

文章目录1. 比赛结果2. 题目1. LeetCode 5396. 连续字符 easy2. LeetCode 5397. 最简分数 medium3. LeetCode 5398. 统计二叉树中好节点的数目 medium4. LeetCode 5399. 数位成本和为目标值的最大数字 hard1. 比赛结果 做出来了 1、2、3 题&#xff0c;19分钟做出来3题&#x…

世界是个班,美国是班长,中国是团支书(太经典了!)

1。美国 班长&#xff0c;家里有钱&#xff0c;人长得也强壮&#xff0c;学习成绩很好但也爱打架&#xff0c;做事蛮横无理&#xff0c;班里同学一般都不敢顶撞他。和副班长关系不好。 2。俄罗斯 副班长&#xff0c;学习成绩好&#xff0c;全班最高大&#xff0c;上学期光和班长…

蛤蟆 Oracle,47.蛤蟆笔记go——go连接Oracle

47.蛤蟆笔记go——go连接Oracle在连接ORACLE数据库之前我们先来看下一个概念OCI。ociORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口子例程(函数)&#xff0c;通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目…