【Leecode】Leecode刷题之路第57天之插入区间

Scroll Down

题目出处

57-插入区间-题目出处

题目描述

57-插入区间-题目描述

个人解法

思路:

todo

代码示例:(Java)

todo

复杂度分析

todo

官方解法

57-插入区间-官方题解

前言

57-插入区间-官方解法-前言

方法1:模拟

思路:

57-插入区间-模拟-思路1
57-插入区间-模拟-思路2

代码示例:(Java)

public class Solution1 {
    public int[][] insert(int[][] intervals, int[] newInterval) {
        int left = newInterval[0];
        int right = newInterval[1];
        boolean placed = false;
        List<int[]> ansList = new ArrayList<int[]>();
        for (int[] interval : intervals) {
            if (interval[0] > right) {
                // 在插入区间的右侧且无交集
                if (!placed) {
                    ansList.add(new int[]{left, right});
                    placed = true;
                }
                ansList.add(interval);
            } else if (interval[1] < left) {
                // 在插入区间的左侧且无交集
                ansList.add(interval);
            } else {
                // 与插入区间有交集,计算它们的并集
                left = Math.min(left, interval[0]);
                right = Math.max(right, interval[1]);
            }
        }
        if (!placed) {
            ansList.add(new int[]{left, right});
        }
        int[][] ans = new int[ansList.size()][2];
        for (int i = 0; i < ansList.size(); ++i) {
            ans[i] = ansList.get(i);
        }
        return ans;
    }


}

复杂度分析

57-插入区间-模拟-复杂度分析

考察知识点

收获

Gitee源码位置

57-插入区间-源码

同名文章,已同步发表于CSDN,个人网站,公众号