LeetCode 56 合併區間

2021-09-13 13:46:33 字數 859 閱讀 5569

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

示例 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] 可被視為重疊區間。

題意還是好理解的,就是當end1merge(listintervals)

});//這是乙個介面,可以用來給非數字的陣列排序。

res.add(intervals.get(0));

//從第乙個開始

int pos=0;

for(int i=1;ipreend)

}else

}return res;

}}可能這個方式有點難理解,因為這個介面並不是容易想到的,那麼有沒有簡單易懂的方式呢,那麼就要犧牲時間複雜度了,我可以進行兩次的迴圈,第一次用來選兩個最區間包含或者最接近的陣列,方法就是兩個頭,兩個尾比較。第二遍就是將陣列合併儲存。

class solution 

}else}}

if(j>=intervals.size())

}return list;

}}

第乙個時間複雜度為o(n)

第二個時間複雜度為o(n^2)

這道題難點就是怎麼將陣列排序了,既可以用collections.sort這種方式,也當然可以用傳統的遍歷,不過還是優先複雜度低的吧

做這道題重要的就是學到了乙個新的介面啦

[1]

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 可被視為重疊區間。首先,對給定...