代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间

2024-03-05 1299阅读

温馨提示:这篇文章已超过385天没有更新,请注意相关的内容是否还可用!

435. 无重叠区间

  • 刷题代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://leetcode.cn/problems/non-overlapping-intervals/description/
  • 文章讲解代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://programmercarl.com/0435.%E6%97%A0%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4.html
  • 视频讲解代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://www.bilibili.com/video/BV1A14y1c7E1/?vd_source=af4853e80f89e28094a5fe1e220d9062
  • 题解:
    class Solution {
        public int eraseOverlapIntervals(int[][] intervals) {
            //这行代码是对一个二维数组intervals进行排序,
            //根据每个子数组的第一个元素进行升序排序。
            //Lambda表达式(a,b)-> { return Integer.compare(a[0],b[0]);} 
            //是用来定义比较规则的,比较的是每个子数组的第一个元素。
            //Arrays.sort方法会根据这个比较规则对intervals进行排序。
            Arrays.sort(intervals, (a, b) -> {
                return Integer.compare(a[0], b[0]);
            });
            int result = 1;
            for(int i = 1; i  
    

    763.划分字母区间

    • 刷题代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://leetcode.cn/problems/partition-labels/description/
    • 文章讲解代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://programmercarl.com/0763.%E5%88%92%E5%88%86%E5%AD%97%E6%AF%8D%E5%8C%BA%E9%97%B4.html
    • 视频讲解代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://www.bilibili.com/video/BV18G4y1K7d5/?vd_source=af4853e80f89e28094a5fe1e220d9062
    • 题解:
      class Solution {
          public List partitionLabels(String s) {
              List result = new LinkedList();
              //使用类似桶排序的方式,一共有26个英文字母
              int[] edge = new int[26];
              //转化为字符数组
              char[] chars = s.toCharArray();
              //类似桶排序方式,记录当前字母离数组开头的最远的元素的距离
              for(int i = 0; i  
      

      56. 合并区间

      • 刷题代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://leetcode.cn/problems/merge-intervals/description/
      • 文章讲解代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://programmercarl.com/0056.%E5%90%88%E5%B9%B6%E5%8C%BA%E9%97%B4.html
      • 视频讲解代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间、56. 合并区间https://www.bilibili.com/video/BV1wx4y157nD/?vd_source=af4853e80f89e28094a5fe1e220d9062
      • 题解:
        class Solution {
            public int[][] merge(int[][] intervals) {
                //定义二维数组做结果存储
                List result = new LinkedList();
                //lambda表达式中的比较函数会根据每个区间的第一个元素进行比较
                //从而实现对区间数组的按照第一个元素升序排序。
                Arrays.sort(intervals, (x, y) -> Integer.compare(x[0], y[0]));
                //初始化最小左边界为start
                int start = intervals[0][0];
                int mostRightBound = intervals[0][1];
                for(int i = 1; i  mostRightBound){
                        //加入结果区间并更新start
                        //将一个新的整数数组[start, rightmostRightBound]添加到res中。
                        result.add(new int[]{start, mostRightBound});
                        //并重新更新start,mostRightBound
                        start = intervals[i][0];
                        mostRightBound = intervals[i][1];
                    }else{
                        //当前左边界小于等于最大右边界,则直接在结果集中更新最大右边界
                        mostRightBound = Math.max(mostRightBound, intervals[i][1]);
                    }
                }
                result.add(new int[]{start, mostRightBound});
                return result.toArray(new int[result.size()][]);
            }
        }
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]