首页 > 其他分享 >435. 无重叠区间(leetcode)

435. 无重叠区间(leetcode)

时间:2024-08-29 15:39:16浏览次数:6  
标签:重叠 int res intervals 端点 区间 435 leetcode

https://leetcode.cn/problems/non-overlapping-intervals/description/

贪心:思路是更新重叠的区间

class Solution {
    public int eraseOverlapIntervals(int[][] intervals) {
        // 区间问题,首先排序,找到发生重叠的两个区间,将右边的重叠区间移除,实际对应代码的操作是
        // 将右边的区间右端点更新为(左区间和右区间)的最左端点,然后res就可以++
        // 这里更新右端点是其实意味着可以选择删除这两个区间的其中一个,
        // 如果右区间的右端点比左区间的右端点偏左,则删除左区间,反之其实是删除右区间
        Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));
        int res=0;
        for(int i=1;i<intervals.length;i++)
        {
            // 左区间的右端点 在 在右区间的左端点的 右边 ,即发生重叠
            if(intervals[i-1][1] > intervals[i][0])
            {
                // 发生重叠,更新右区间
                intervals[i][1]=Math.min(intervals[i-1][1],intervals[i][1]);
                res++;
            }
        }
        return res;


    }
}

 

标签:重叠,int,res,intervals,端点,区间,435,leetcode
From: https://www.cnblogs.com/lxl-233/p/18386818

相关文章

  • 452. 用最少数量的箭引爆气球(leetcode)
    https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/思路是排序,方便计算气球重叠,难点是在重叠时更新右边界,更新为两个区间的最右重合点,因为这个点是最少一支箭就可以射掉两个气球的最右点,再去下个循环判断区间重合classSolution{......
  • LeetCode-Python-1539. 第 k 个缺失的正整数(二分)
    给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。示例1:输入:arr=[2,3,4,7,11],k=5输出:9解释:缺失的正整数包括[1,5,6,8,9,10,12,13,...]。第5个缺失的正整数为9。示例2:输入:arr=[1,2,3,4],k=2......
  • 一起学习LeetCode热题100道(61/100)
    61.分割回文串(学习)给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例1:输入:s=“aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例2:输入:s=“a”输出:[[“a”]]提示:1<=s.length<=16s仅由小写英文字母......
  • leetcode215. 数组中的第K个最大元素,小根堆/快排思想
    leetcode215.数组中的第K个最大元素给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。示例1:输入:[3,2,1,5,6,4],k=2......
  • LeetCode 面试经典 150 题回顾
    目录一、数组/字符串1.合并两个有序数组 (简单)2.移除元素 (简单)3.删除有序数组中的重复项 (简单)4.删除有序数组中的重复项II(中等)5.多数元素(简单)6.轮转数组 (中等)7.买卖股票的最佳时机(简单)8.买卖股票的最佳时机II (中等)9.跳跃游戏(中等)10.跳跃游戏II(中等)11.H指......
  • LeetCode - 1 两数之和
    题目来源1.两数之和-力扣(LeetCode)题目描述给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案......
  • 单调队列--滑动窗口最大值(leetcode23)
    目录一、单调队列介绍二、题目应用1.题目描述2.解题碎碎念3.代码示例三、扩展1.与优先队列区别2.单调队列其他题目一、单调队列介绍单调队列是一种特殊的队列数据结构,它能够在常数时间内找到队列中的最值。单调队列可以用来解决一些与最值相关的问题,例如滑动窗口最......
  • 56. 合并区间【 力扣(LeetCode) 】
    一、题目描述  以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。二、测试用例示例1:输入:intervals=[[1,3],[2,6],[8,10],[15,18]]输......
  • 【Hot100】LeetCode—39. 组合总和
    目录1-思路2-实现⭐39.组合总和——题解思路3-ACM实现题目连接:39.组合总和1-思路注意如果借助startIndex实现,理解startIndex的含义在本题目中,由于同一个元素可以重复选取,因此startIndex在传递的过程中,不需要进行+1操作,传递的值为i2-实现⭐39......
  • 【Hot100】LeetCode—17. 电话号码的字母组合
    目录1-思路String数组(哈希表)+回溯2-实现⭐17.电话号码的字母组合——题解思路3-ACM实现题目连接:17.电话号码的字母组合1-思路String数组(哈希表)+回溯思路通过String数组实现哈希表,存储0-9的哈希表映射回溯三部曲①参数及返回值numToStr:Stri......