美文网首页程序员
力扣 57 插入区间

力扣 57 插入区间

作者: zhaojinhui | 来源:发表于2020-10-01 03:33 被阅读0次

题意:给一个区间数组,和一个区间,把那个区间插入区间数组

思路:遍历每一个interval

  1. 如果当前interval的结束时间比newInterval的开始时间早,把interval加入stack
  2. 如果当前interval的开始时间比newInterval的结束时间晚,把newInterval加入stack,并更新newInterval
  3. 其他情况更新newInterval
  4. 遍历结束后把newInterval加入stack
  5. 从stack中构建res,并返回

思想:利用堆栈

复杂度:时间O(n),空间O(n)

class Solution {
    public int[][] insert(int[][] intervals, int[] newInterval) {
        Stack<int[]> stack = new Stack();
        for(int[] interval: intervals) {
            if(interval[1] < newInterval[0]) {
                stack.add(interval);
            } else if(newInterval[1] < interval[0]) {
                stack.add(newInterval);
                newInterval = interval;
            } else {
                newInterval[0] = Math.min(interval[0], newInterval[0]);
                newInterval[1] = Math.max(interval[1], newInterval[1]);
            }
        }
        stack.add(newInterval);
        int[][] res = new int[stack.size()][2];
        int cnt = stack.size() - 1;
        while(!stack.isEmpty()) {
            res[cnt--] = stack.pop();
        }
        return res;
    }
}

相关文章

  • 力扣 57 插入区间

    题意:给一个区间数组,和一个区间,把那个区间插入区间数组 思路:遍历每一个interval 如果当前interva...

  • LeetCode 力扣 57. 插入区间

    题目描述(困难难度) 和上一道可以说是一个问题,只不过这个是给一个已经合并好的列表,然后给一个新的节点依据规则加入...

  • 区间合并算法

    0X00 区间合并 803. 区间合并 57. 插入区间

  • 57.插入区间

  • [LeetCode]57、插入区间

    题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍...

  • LeetCode - #57 插入区间

    前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤...

  • Leetcode 57 | 插入区间

    题目 Leetcode地址:57. 插入区间[https://leetcode.cn/problems/inser...

  • leetcode_57 插入区间

    碎碎念,每次自己都钻牛角尖,相出来的解法打了n个补丁也过不了,有更好的思路但是想不到,还是换个思路更好,卑微看答案...

  • 排序

    56-合并区间57-插入区间 字典序排数 给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,...

  • 57. Insert Interval 插入区间

    题目链接tag: Hard; question:  Given a set of non-overlapping ...

网友评论

    本文标题:力扣 57 插入区间

    本文链接:https://www.haomeiwen.com/subject/mvsxuktx.html