leetcode 56 合併區間

2021-10-19 09:04:47 字數 1112 閱讀 3978

##給出乙個區間的集合,請合併所有重疊的區間。

示例 1:

輸入: [[1,3],[2,6],[8,10],[15,18]]

輸出: [[1,6],[8,10],[15,18]]

解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].

示例 2:

輸入: [[1,4],[4,5]]

輸出: [[1,5]]

解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。

將區間按照左端點公升序排列,同《演算法導論》——活動選擇問題。

時間複雜度o(nlgn),空間複雜度o(n)。

class solution  else 

}});

listans = new linkedlist();

int x = intervals[0][0];

int y = intervals[0][1];

for(int i = 1; i < length; i++) );

x = intervals[i][0];

y = intervals[i][1];

} else if(intervals[i][1] > y)

} ans.add(new int);

int n = 0;

int res = new int[ans.size()][2];

for(int i : ans)

return res;

}}

arraylist和linkedlist的大致區別:

1.arraylist是實現了基於動態陣列的資料結構,linkedlist基於鍊錶的資料結構。

2.對於隨機訪問get和set,arraylist覺得優於linkedlist,因為linkedlist要移動指標。

3.對於新增和刪除操作add和remove,linkedlist比較佔優勢,因為arraylist要移動資料。

public boolean add(e e) 

/*** links e as last element.

*/void linklast(e e)

結點的新增僅操作了位址。

Leetcode 56 合併區間

對所有區間按起點位置進行排序 遍歷到k點後的 l,r 已知的包含k點的最大區間 遍歷到k 1點,若該起點屬於 l,r 那麼可能擴充套件這個區間的終點,r max r,k 1點的end definition for an interval.struct interval interval int s,...

LeetCode 56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。解題思路 1...

LeetCode 56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。題意還是好理...