* 56. Merge Intervals - hard

這道題其實本身并不難。幾種情況分類討論有點亂。
沒寫出來,看了別人的答案:

/**
 * Definition for an interval.
 * public class Interval {
 *     int start;
 *     int end;
 *     Interval() { start = 0; end = 0; }
 *     Interval(int s, int e) { start = s; end = e; }
 * }
 */
public class Solution {
    public List<Interval> merge(List<Interval> intervals) {
        List<Interval> ans = new ArrayList<>();
        if (intervals == null || intervals.size()==0)   return ans;
        
        ans.add(intervals.get(0));
        for (int i=1; i<intervals.size(); i++) {
            Interval curr = intervals.get(i);
            int j = ans.size()-1;
            for (; j>=0; j--) {
                Interval prev = ans.get(j);
                if (prev.end < curr.start) {
                    ans.add(j+1, curr);
                    break;
                }
                else if (prev.start <= curr.start) {
                    prev.end = Math.max(prev.end, curr.end);
                    break;
                } 
                else if (prev.start <= curr.end) {
                    prev.start = curr.start;
                    prev.end = Math.max(prev.end, curr.end);
                    curr = prev;
                    ans.remove(j);
                }
                else {
                    continue;
                }
            }
            if (j<0)    ans.add(0,curr);
        }
        return ans;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Mum just came back from CHN.take too much time. but it's ...
    沉睡至夏閱讀 148評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,268評論 25 708
  • 今天突然聽到唐駿的名字,想起那個野雞博士的事情,翻出來好久前寫的一篇文章,算是那年那月戲虐之后留下點的文墨。 紅樓...
    小酒爐閱讀 225評論 0 0
  • 讀無理想生活后,其實自己也是一個被世俗煩惱折磨及不甘于過貧困生活的女人。 之前朝九晚五的上班,沒有顧及到女兒和生活...
    不愛看書的Stephanie閱讀 248評論 0 0
  • 今年演藝界一個喬姓藝人因抑郁癥去世的消息一度讓人們很關注抑郁癥,各種類型的抑郁癥,品種繁多讓人忍不住對號入座。 現...
    sundy小王閱讀 180評論 0 3