【Leetcode刷題篇】leetcode56 合併區間
給出一個區間的集合,請合併所有重疊的區間。
示例 1:
輸入: intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出: [[1,6],[8,10],[15,18]]
解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].
示例 2:
輸入: intervals = [[1,4],[4,5]]
輸出: [[1,5]]
解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。
注意:輸入型別已於2019年4月15日更改。 請重置預設程式碼定義以獲取新方法簽名。
解題思路:對其自定義排序,之後網attaylist按順序新增,並比較值,替換值
class Solution {
public int[][] merge(int[][] intervals) {
if(intervals.length==0) {
return intervals;
}
// 自定義排序
Arrays.sort(intervals,(a,b)->(a[0]-b[0]));
ArrayList<int[]> res = new ArrayList<>();
// 對其遍歷
for(int i=0;i<intervals.length;i++) {
int L = intervals[i][0];
int R = intervals[i][1];
// 判斷
if(res.size()==0 || res.get(res.size()-1)[1] < L) {
// 不合並
res.add(new int[] {L,R});
}else {
// 合併
res.get(res.size()-1)[1] = Math.max(res.get(res.size()-1)[1], R);
}
}
return res.toArray(new int[res.size()][]);
}
}
相關文章
- 區間dp 合併石子問題
- 合併區間
- 區間合併
- leetcode刷題.763. 劃分字母區間.每日打卡LeetCode
- 區間合併002
- 6.24 區間合併
- 【區間dp】石子合併
- 【Leetcode刷題篇】leetcode152 乘積最大陣列LeetCode陣列
- leetcode:1000. 合併石頭的最低成本(區間dp,困難)LeetCode
- LeetCode 刷題—樹LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- 1236:區間合併 2020-12-27
- LeetCode刷題記錄LeetCode
- leetcode刷題筆記LeetCode筆記
- 如何使用leetcode刷題LeetCode
- Leetcode刷題分類LeetCode
- LeetCode 刷題筆記LeetCode筆記
- Leetcode刷題準備LeetCode
- LeetCode刷題—陣列LeetCode陣列
- HDU 3397 Sequence operation(線段樹區間染色加區間合併)
- LeetCode刷題之第701題LeetCode
- LeetCode 刷題指南(一):為什麼要刷題LeetCode
- 【刷題1】LeetCode 39. 組合總和 java基礎LeetCodeJava
- leetcode 每日一題 617 合併二叉樹LeetCode每日一題二叉樹
- 【Leetcode千題】617. 合併二叉樹LeetCode二叉樹
- 【Leetcode刷題篇】leetcode812 最大三角形面積LeetCode
- Leetcode刷題——求眾數LeetCode
- leetcode刷題記錄 661~LeetCode
- leetcode刷題筆記605LeetCode筆記
- Leetcode刷題系列彙總LeetCode
- LeetCode刷題記112-130. 被圍繞的區域LeetCode
- LeetCode刷題:設計問題篇(C++實現,持續更新中...)LeetCodeC++
- LeetCode刷題:數學篇(C++實現,持續更新中...)LeetCodeC++
- leetcode刷題筆記(3)(python)LeetCode筆記Python
- LeetCode刷題(javascript,python3)LeetCodeJavaScriptPython
- 用 Rust 刷 leetcode 第七題RustLeetCode