题解 | #合并区间#

合并区间

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

相关推荐

03-26 13:04
已编辑
电子科技大学 算法工程师
xiaowl:你这个简历“条目上”都比较有深度性,但是实际上面试官又没法很好的评估你是怎么达到很多看上去很厉害的结果的。要避免一些看上去很厉害的包装,比如高效的内存复用策略的表达,如果仅是简单的一些内存共享机制,而且面试上也没有深挖的空间,就不要这样表达。比如,工程化模式本质上可能就是定义了一些abstract class,那也就没特别多值得讲的内容。建议简历上应该侧重那些你花了大量时间和精力解决、研究的问题,不要过分追求“丰富”,而是关注在技术深入度、问题解决能力的表现上。
没有实习经历,还有机会进...
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务