day28(12.8)——leetcode面试经典150

57. 插入区间

57. 插入区间

这个跟上面的那道题有点类似。

题目:

题解:

java 复制代码
class Solution {
    public int[][] insert(int[][] intervals, int[] newInterval) {
        //先将intervals转成List
        List<int[]> list = new ArrayList<>();
        //往List中加入元素
        for(int[] row:intervals) {
            list.add(row);
        }
        list.add(newInterval);
        //进行排序
        list.sort(Comparator.comparingInt(i->i[0]));
        //创建一个新的序列
        List<int[]> news = new ArrayList<>();
        //获取起始元素
        int l = list.get(0)[0];
        int r = list.get(0)[1];
        //进行合并
        for(int i=1;i<list.size();i++) {
            //如果当前的右边界大于r同时当前左边界小于等于r
            if(list.get(i)[1]>r&&list.get(i)[0]<=r) {
                r = list.get(i)[1];
            }
            //如果当前的左边界>r
            else if(list.get(i)[0]>r) {
                //直接加入news
                news.add(new int[]{l,r});
                //进行更新l,r
                l = list.get(i)[0];
                r = list.get(i)[1];
            }
        }
        //进行新增l,r
        news.add(new int[]{l,r});
        //直接进行转成二维数组
        return news.toArray(int[][]::new);
    }
}
相关推荐
uzong5 小时前
一个好的面试官,应该让候选人感到被尊重
面试
To_OC6 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
旖-旎7 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
To_OC7 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
delishcomcn8 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法
触底反弹8 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
雪碧聊技术9 小时前
力扣 LCR 091. 粉刷房子 —— 动态规划入门详解
算法·动态规划
沉默王二10 小时前
腾讯一面,我霸气反问:“你说你们在做Agent项目,说说 SubAgent、Plan 模式、Skill 调用这些你们都是怎么做的?”面试官一直在擦汗。。
面试·agent·ai编程
CV-Climber11 小时前
检索技术的实际应用
人工智能·算法