簡答題30- 插入?yún)^(qū)間

描述

Given a non-overlapping interval list which is sorted by start point.

Insert a new interval into it, make sure the list is still in order and non-overlapping (merge intervals if necessary).
您在真實的面試中是否遇到過這個題? 是
樣例

Insert (2, 5) into [(1,2), (5,9)], we get [(1,9)].

Insert (3, 4) into [(1,2), (5,9)], we get [(1,2), (3,4), (5,9)].
【思路】
思路很簡單就是定義個result,不斷比較加入到結果集中。
【代碼實現(xiàn)】

public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
        List<Interval> result = new ArrayList<Interval>();
        
        for (Interval i:intervals) {
            if (newInterval == null || i.end<newInterval.start) {
                result.add(i);
            } else if (i.start>newInterval.end) {
                result.add(newInterval);
                result.add(i);
                newInterval = null;
            } else {
                newInterval.start = Math.min(newInterval.start, i.start);
                newInterval.end = Math.max(newInterval.end, i.end);
            }
            
        }
        if (newInterval != null) {
            result.add(newInterval);
        }
        return result;
    }
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 修改完 /etc/default/grub , 需要執(zhí)行 sudo update-grub 生成 /boot/gr...
    西文Steven閱讀 25,492評論 1 5
  • 生為虛名苦作樂, 贏得榮華又如何。 損精勞身赴千里, 莫嘆愁緒無人知。
    言殼閱讀 139評論 0 1
  • 【合一的訣竅】 找到那個不生不滅的空間,你就知道了我的住所,那是我的所在之處。 ——愛 我: 怎樣才能讓自己安靜下...
    覺知中的帆閱讀 384評論 0 0
  • 就因為孩子爸在昆明有點疏離了,又開始讓我想入非非啦~ 本想著他就應該多多照顧我們娘倆嘛,結果他自己參加完同學聚會就...
    愛人如己FJ閱讀 100評論 0 0

友情鏈接更多精彩內(nèi)容