leetcode習題集 56 合併區間

2021-09-20 03:25:13 字數 1568 閱讀 9308

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

示例 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 ...