题解 | #合并区间#

合并区间

http://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a

public static ArrayList<Interval> merge(ArrayList<Interval> intervals) {
        intervals.sort(new Comparator<Interval>() {
            @Override
            public int compare(Interval o1, Interval o2) {
                return o1.start - o2.start;
            }
        });
        int j = 1;
        int i = 0;
        while (j < intervals.size()) {
            Interval before = intervals.get(i);
            Interval after = intervals.get(j);
            if (before.end >= after.start) {
                Interval tmp = new Interval(before.start, Math.max(before.end, after.end));
                intervals.remove(i); // 重点删除后,位置会往后移
                intervals.remove(i);
                intervals.add(i, tmp);  // 重点add, 不是set
            } else {
                i++;
                j++;
            }
        }
        return intervals;
    }
算法 文章被收录于专栏

数据结构和算法

全部评论
超时了啊
点赞 回复 分享
发布于 2022-03-31 15:56

相关推荐

不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务