【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 合併石子問題
- 合併區間
- 區間合併
- 6.24 區間合併
- 【區間dp】石子合併
- leetcode刷題.763. 劃分字母區間.每日打卡LeetCode
- 石子合併問題 (樸素區間DP&&GarsiaWachs演算法)演算法
- leetcode:1000. 合併石頭的最低成本(區間dp,困難)LeetCode
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode 刷題—樹LeetCode
- 【Leetcode刷題篇】leetcode152 乘積最大陣列LeetCode陣列
- LeetCode 刷題指南(一):為什麼要刷題LeetCode
- 【刷題1】LeetCode 39. 組合總和 java基礎LeetCodeJava
- LeetCode 刷題筆記LeetCode筆記
- leetcode刷題筆記LeetCode筆記
- LeetCode刷題記錄LeetCode
- 如何使用leetcode刷題LeetCode
- leetcode刷題--Majority ElementLeetCode
- leetcode刷題--Count PrimesLeetCode
- leetcode刷題--Reverse BitsLeetCode
- leetcode刷題--Rotate ArrayLeetCode
- leetcode刷題--Count and SayLeetCode
- Leetcode刷題分類LeetCode
- Leetcode刷題準備LeetCode
- LeetCode刷題—陣列LeetCode陣列
- 遊戲中合併區服,暱稱問題遊戲
- leetcode 每日一題 617 合併二叉樹LeetCode每日一題二叉樹
- 【Leetcode千題】617. 合併二叉樹LeetCode二叉樹
- LeetCode刷題:設計問題篇(C++實現,持續更新中...)LeetCodeC++
- Leetcode刷題——求眾數LeetCode
- leetcode刷題筆記605LeetCode筆記
- Leetcode刷題系列彙總LeetCode
- leetcode刷題--Happy NumberLeetCodeAPP
- leetcode刷題--Number of 1 BitsLeetCode
- leetcode刷題記錄 661~LeetCode
- LeetCode刷題之第701題LeetCode