給出乙個區間的集合,請合併所有重疊的區間。
示例 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] 可被視為重疊區間。
public
class
p56_mergeintervals;}
//用向量暫存變長的陣列
vector vector =
newvector()
;//對區間按左邊界從低到高排序
sort
(intervals)
;int left = intervals[0]
[0];
int right = intervals[0]
[1];
//遍歷合併區間
for(
int i =
1;i)else);
left = intervals[i][0
];right = intervals[i][1
];}}
vector.
addelement
(new
int)
;int
r =newint
[vector.
size()
][2]
;//向量轉化成陣列
vector.
copyinto
(r);
return r;
}//快速排序(按照區間左值排序)
private
void
sort
(int
arr)
private
void
quicksort
(int
arr,
int l,
int r)
}private
intpartition
(int
arr,
int l,
int r)
}swap
(arr,p,index-1)
;return index -1;
}private
void
swap
(int
arr,
int i,
int j)
}
思路:
用向量暫存變長的陣列
對區間按左邊界從低到高排序(快速排序)
遍歷各個區間,對重疊部分合併,重疊判定:當前遍歷的區間的左邊界,落在left和right之間
啥也不說了,明年繼續加油吧~
Leetcode習題集 鍊錶
這裡記錄一些我刷題的思路方便之後進行複習重溫,同時也方便進行新增 p141 環形鍊錶 class solution listnode reverse listnode head return pre 使用翻轉鍊錶,判斷返回的指標與傳進的指標是否相同,時間複雜度是o n 可能 空間複雜度是o 1 cl...
leetcode習題集 54 螺旋矩陣
給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11...
leetcode習題集 65 有效數字
驗證給定的字串是否可以解釋為十進位制數字。例如 0 true 0.1 true abc false 1 a false 2e10 true 90e3 true 1e false e3 false 6e 1 true 99e2.5 false 53.5e93 true 6 false 3 false ...