LeetCode57插入區間

2021-10-24 18:38:25 字數 1208 閱讀 7208

給出乙個無重疊的 ,按照區間起始端點排序的區間列表。

在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)。

典型的貪心問題,需要對二維陣列起始端點進行排序。

注意以下用法:

linkedlistoutput = new linkedlist(); 可以儲存二維陣列

return output.toarray(new int[output.size()][2]); 可以輸出二維陣列

arrays.

sort

(intervals,

newcomparator

<

int[

]>()

});

class

solution

// add next intervals, merge with newinterval if needed

while

(idx < n)

}return output.

toarray

(new

int[output.

size()

][2]

);}}

對於區間s1[l1,r1],s2[l2,r2],如果兩個區間沒有交集,那麼s1在s2左側,或者s2在s1左側,那麼有l2>r1或者l1>r2,

否則有交集。其並集為[min(l1,l2),max(r1,r2)]

class

solution);

placed =

true;}

anslist.

add(interval);}

else

if(interval[1]

< left)

else}if

(!placed));

}//注意二維陣列和arraylist的轉化

int[

] ans =

newint

[anslist.

size()

][2]

;for

(int i =

0; i < anslist.

size()

;++i)

return ans;

}}

LeetCode 57 插入區間

幾個注意點 1.原集合為空 2.插入在最開始的位置 3.插入在末尾位置 4.插入在中間 可以通過新增標誌,沒有新增就每次都去判斷重疊情況進行新增 vectorresult if intervals.size 0 bool isadd false for int i 0 i intervals.siz...

leetcode57 插入區間

給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...

leetcode 57 插入區間

給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2,5 輸出 1,5 6,9 示例 2 輸入 intervals 1,2 3,...