56. Merge Intervals
https://leetcode.com/problems/merge-intervals/description/
class Solution {
public int[][] merge(int[][] intervals) {
int n = intervals.length;
List<int[]> arr = new ArrayList<>();
Arrays.sort(intervals, (int[] i1, int[] i2) -> {
if (i1[0] == i2[0]) {
return i1[1] - i2[1];
}
return i1[0] - i2[0];
});
int[] cur = intervals[0];
for (int i = 1; i < n; i++) {
if (cur[1] >= intervals[i][0]) {
cur[1] = Math.max(cur[1], intervals[i][1]);
} else {
arr.add(cur);
cur = intervals[i];
}
}
// end = Math.max(end, intervals[n-1][1]);
//ๆๅไธไธชcurๆ ่ฎบๅฆไฝ้ฝ่ฆๅ ่ฟๅป
arr.add(cur);
int[][] ans = new int[arr.size()][2];
for (int i = 0; i < arr.size(); i++) {
ans[i][0] = arr.get(i)[0];
ans[i][1] = arr.get(i)[1];
}
return ans;
}
}
Last updated