首页 > 其他分享 >56. 合并区间(leetcode)

56. 合并区间(leetcode)

时间:2024-08-29 18:37:56浏览次数:10  
标签:int res 56 合并 add intervals 区间 leetcode

https://leetcode.cn/problems/merge-intervals/description/

经典题合并区间

class Solution {
    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));
        // 区间合并经典题
        // 思路是先加入第一个区间,此后遍历区间,从res的末尾取,若发生重叠则进行合并
        // 合并的关键是更新区间端点,为两个重叠区间的最右点
        List<int[]> res = new ArrayList<>();
        res.add(intervals[0]);
        int count=0;
        if(intervals.length==1)return intervals;
        for(int i=1;i<intervals.length;i++)
        {
            // 发生重叠
            if(res.getLast()[1] >= intervals[i][0] )
            {
                int start = res.getLast()[0];
                int end = Math.max(intervals[i][1], res.getLast()[1]);
                // 更新区间
                res.removeLast();
                res.add(new int[]{start, end});
            }
            else
            {
                // 未发生重叠
                res.add(intervals[i]);
            }
        }
        return res.toArray(new int[res.size()][]);
    }
}

 

标签:int,res,56,合并,add,intervals,区间,leetcode
From: https://www.cnblogs.com/lxl-233/p/18387394

相关文章

  • python Pandas合并(单元格、sheet、excel )
    如果你对Python感兴趣的话,可以试试我整理的这一份全套的Python学习资料,【点击这里】免费领取!安装Pandas和openpyxl首先,确保已经安装了Pandas和openpyxl。可以通过pip安装:pip install pandas openpyxl创建DataFrameimportpandasaspd#创建DataFramed......
  • 【转载】启发式合并
    https://zhuanlan.zhihu.com/p/560661911数据结构学习笔记(8)启发式合并启发式合并是用来解决子树中的统计问题。在codeforces上叫做dsuontree(树上启发式合并)。这里我们主要是来讲在树上进行启发式合并。实际上之前我有讲过启发式合并严格鸽:启发式合并看似暴力实则很快的......
  • 763. 划分字母区间(leetcode)
    https://leetcode.cn/problems/partition-labels/description/听说这题是字节广告一面的题有两种做法,但是思路大致相同,主要思路是先求出所有字符的出现的最远距离,然后不断往后遍历,更新当前片段的最远距离若是第一种做法,就是放在另一个循环中,不断更新最远距离,且维护这个en......
  • leetcode_128_最长连续序列解析
    题目给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4。示例2:输入......
  • 435. 无重叠区间(leetcode)
    https://leetcode.cn/problems/non-overlapping-intervals/description/贪心:思路是更新重叠的区间classSolution{publicinteraseOverlapIntervals(int[][]intervals){//区间问题,首先排序,找到发生重叠的两个区间,将右边的重叠区间移除,实际对应代码的操......
  • 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仅由小写英文字母......
  • saveBatch时 遇到Duplicate entry '1828978156126666754' for key
    问题:saveBatch时遇到Duplicateentry'1828978156126666754'forkey分析:1.检查数据库里是否有重复ID      2.检查代码中是否有id赋值     3.       以上排查都没发现问题,以下代码分析了一下,为了节省空间,我在for循环上面new了一个封装类,......
  • 使用open3d合并ply模型
    importopen3daso3dfromscipy.ndimageimportbinary_fill_holesdefmerge_ply(ply1,ply2,output_path):#加载两个多边形模型mesh1=o3d.io.read_triangle_mesh(ply1)mesh2=o3d.io.read_triangle_mesh(ply2)#使用+运算符合并两个多边形模型......