当前位置: 首页 > news >正文

LeetCode-56-合并区间

题目描述:
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

在这里插入图片描述

可以使用 LinkedList,也可以使用 ArrayList。

class Solution {/*** 思路:先根据左区间将 intervals 排序,* 排序后遍历 intervals,将当前区间(左)和前一个区间(右),进行比较,* 如果有重叠就取右区间最大的,其他没有重叠的就直接加到res中* @param intervals* @return*/public int[][] merge(int[][] intervals) {List<int[]> res = new LinkedList<>();Arrays.sort(intervals,(x,y) -> Integer.compare(x[0], y[0]));// 二维数组排序res.add(intervals[0]);for (int i = 1; i < intervals.length; i++) {// res.get(res.size()-1);// 获取res列表的最后一个元素if (res.get(res.size()-1)[1] >=  intervals[i][0]){// 注意是 >=// 合并res.add(new int[]{res.get(res.size()-1)[0],Math.max(res.get(res.size()-1)[1], intervals[i][1])});res.remove(res.size()-2);// 移除倒数第二个,也就是新加的前一个,因为已经和新加的重复了}else {res.add(intervals[i]);}}return res.toArray(new int[res.size()][]);// List<int[]> -> 二维数组}
}
http://www.lryc.cn/news/142579.html

相关文章:

  • Git gui教程---番外篇 gitignore 的文件使用
  • javaee spring 用注解的方式实现ioc
  • Linux基础(二)
  • 155. 最小栈(中等系列)
  • 用python从零开始做一个最简单的小说爬虫带GUI界面(3/3)
  • SpringBoot+Vue如何写一个HelloWorld
  • 深度强化学习。介绍。深度 Q 网络 (DQN) 算法
  • 【C++随笔02】左值和右值
  • 几个nlp的小任务(多选问答)
  • 【C++学习记录】为什么需要异常处理,以及Try Catch的使用方法
  • 孪生网络(Siamese Network)
  • 【Redis】Redis是什么、能干什么、主要功能和工作原理的详细讲解
  • 8月26日,每日信息差
  • 云和恩墨面试(部分)
  • volatile 关键字详解
  • Ceph入门到精通-大流量10GB/s LVS+OSPF 高性能架构
  • Unity光照相关
  • Qt基本类型
  • 前端基础(Element、vxe-table组件库的使用)
  • C++学习记录——이십팔 C++11(4)
  • UE学习记录03----UE5.2 使用拖拽生成模型
  • Spring Cache框架(缓存)
  • Linux学习之Ubuntu 20使用systemd管理OpenResty服务
  • [数据集][目标检测]疲劳驾驶数据集VOC格式4类别-4362张
  • matlab使用教程(25)—常微分方程(ODE)选项
  • MybatisPlus简单到入门
  • 9. 优化器
  • go学习之流程控制语句
  • docker基于已有容器和通过Dockerfile进行制作镜像配置介绍
  • 2022年09月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试