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

【leetcode hot 100 56】合并区间

解法一:排序

我们用数组 merged 存储最终的答案。首先,我们将列表中的区间按照左端点升序排序。然后我们将第一个区间加入 merged 数组中,并按顺序依次考虑之后的每个区间:

  • 如果当前区间的左端点在数组 merged 中最后一个区间的右端点之后,那么它们不会重合,我们可以直接将这个区间加入数组 merged
    的末尾;

  • 否则,它们重合,我们需要用当前区间的右端点更新数组 merged 中最后一个区间的右端点,将其置为二者的较大值。

class Solution {public int[][] merge(int[][] intervals) {Arrays.sort(intervals, new Comparator<int[]>(){public int compare(int[] int0, int[] int1){return int0[0]-int1[0];}});List<int[]> list = new ArrayList<>();for(int i=0; i<intervals.length; i++){int L=intervals[i][0], R=intervals[i][1];if(list.size()==0 || list.get(list.size()-1)[1] < L){list.add(new int[]{L,R});}else{list.get(list.size()-1)[1] = Math.max(list.get(list.size()-1)[1], R);}}return list.toArray(new int[list.size()][2]);}
}

注意:

  • List的长度用list.size()获得,而不是list.length()
  • 匿名内部类compare,输出<0不变;输出>0变。
  • 使用list.toArray(),list必须为ArrayList,括号内部要有转换为的类型:list.toArray(new int[list.size()][2])
http://www.lryc.cn/news/546833.html

相关文章:

  • Python测试框架Pytest的参数化
  • 4G工业路由器在公交充电桩中的应用与优势
  • 搭建一个简单的node服务,模拟后端接口
  • 高频 SQL 50 题(基础版)_610. 判断三角形
  • 【JQuery—前端快速入门】JQuery 基础语法
  • Springboot整合WebSocket+Redis以及微信小程序如何调用
  • 【前端基础】1、HTML概述(HTML基本结构)
  • 小程序性能优化-预加载
  • (1)udp双向通信(2)udp实现文件复制(3)udp实现聊天室
  • el-table 手动选择展示列
  • 零基础学习之——深度学习算法介绍01
  • 【开源项目】好用的开源项目记录(持续更新)
  • Django:文件上传时报错in a frame because it set ‘X-Frame-Options‘ to ‘deny‘.
  • Linux常用指令学习笔记
  • FastGPT 引申:基于 Python 版本实现 Java 版本 RRF
  • 面试八股文--数据库基础知识总结(3)MySQL优化
  • 汇编前置知识学习 第11-13天
  • springboot在业务层校验对象/集合中字段是否符合要求
  • python二级考试中会考到的第三方库
  • Linux中死锁问题的探讨
  • 【实战 ES】实战 Elasticsearch:快速上手与深度实践-2.3.1 避免频繁更新(Update by Query的代价)
  • 【Python项目】基于Python的书籍售卖系统
  • spring boot + vue 搭建环境
  • Linux下的shell指令(一)
  • JS禁止web页面调试
  • GIt分支合并
  • Sqli-labs
  • unreal engine gameplay abiliity 获取ability的cooldown剩余时间
  • 【GenBI优化】提升text2sql准确率:建议使用推理大模型,增加重试
  • 【六祎 - Note】SQL备忘录;DDL,DML,DQL,DCL