https://leetcode.cn/problems/merge-intervals/description/
经典题合并区间
class Solution {
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));
// 区间合并经典题
// 思路是先加入第一个区间,此后遍历区间,从res的末尾取,若发生重叠则进行合并
// 合并的关键是更新区间端点,为两个重叠区间的最右点
List<int[]> res = new ArrayList<>();
res.add(intervals[0]);
int count=0;
if(intervals.length==1)return intervals;
for(int i=1;i<intervals.length;i++)
{
// 发生重叠
if(res.getLast()[1] >= intervals[i][0] )
{
int start = res.getLast()[0];
int end = Math.max(intervals[i][1], res.getLast()[1]);
// 更新区间
res.removeLast();
res.add(new int[]{start, end});
}
else
{
// 未发生重叠
res.add(intervals[i]);
}
}
return res.toArray(new int[res.size()][]);
}
}
标签:int,res,56,合并,add,intervals,区间,leetcode From: https://www.cnblogs.com/lxl-233/p/18387394