首页 > 其他分享 >#yyds干货盘点# LeetCode面试题:合并区间

#yyds干货盘点# LeetCode面试题:合并区间

时间:2023-03-22 20:05:16浏览次数:65  
标签:yyds 面试题 int intervals 区间 new LeetCode merged size

1.简述:

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

 

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]

输出:[[1,6],[8,10],[15,18]]

解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入:intervals = [[1,4],[4,5]]

输出:[[1,5]]

解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

2.代码实现:

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

标签:yyds,面试题,int,intervals,区间,new,LeetCode,merged,size
From: https://blog.51cto.com/u_15488507/6143111

相关文章

  • LeetCode.94 二叉树的中序遍历
    1.题目:给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例1:输入:root=[1,null,2,3]输出:[1,3,2]方法一:递归:classSolution{publicList<Integer>ino......
  • 前端面试题整理(都是我自己面试被问到过的)
    面试了好多次,整理下面试题吧HTML语义化:增加代码可读性,有利于搜索引擎识别,爬虫获取更多信息;更好的展示代码结构script标签中defer和async的区别:相同点:async和defer......
  • 【LeetCode贪心#12】图解监控二叉树(正宗hard题,涉及贪心分析、二叉树遍历以及状态转移)
    监控二叉树力扣题目链接(opensnewwindow)给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所......
  • 128道高频k8s高频面试题
    1、简述ETCD及其特点?2、简述ETCD适应的场景?3、简述什么是Kubernetes?4、简述Kubernetes和Docker的关系?5、简述Kubernetes中什么是Minikube、Kubectl、Kubelet?6、......
  • 链表操作-leetcode23-删除倒数第几个节点
    给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例1:示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]提示:链表中结......
  • 前端面试题(new)未完待续
    1,vue计算属性computed和watch的区别有哪些?区别:1、计算属性在调用时需要在模板中渲染,修改计算所依赖元数据;watch在调用时只需修改元数据。2、计算属性默认深度依赖,watch默......
  • LeetCode15. 三数之和
    题目描述:给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你......
  • Leetcode209. 长度最小的子数组
    题目跳转链接滑动窗口解法代码随想录209.长度最小的子数组滑动窗口是一种基于双指针的算法,它可以用于解决一些数组/字符串的子元素问题,例如:找到最长的子数组、最小的子......
  • 操作系统6道面试题
    202303211.进程和线程的区别进程(Process)和线程(Thread)是操作系统中的两个重要概念。一个进程可以看作是一个正在运行的程序实例,它拥有自己的地址空间、内存、数据栈和其......
  • #yyds干货盘点#vue设置跨域proxy
    创建​​vue.config.js​​文件//方法1module.exports={devServer:{host:'localhost',port:'8083',proxy:{'/api':{//......