二刷hot100-56.合并区间
一道贪心算法题目最后结果要求返回数组但由于过程中无法确定最后结果个数先使用哈希list放置结果最后转化为数组在开始之前先将输入的区间数组按照各个区间的左端升序排序然后创建两个指针left和right他俩代表一个合并区间遍历过程中更新两个指针就可以了具体逻辑当前遍历的区间左端小于合并区间right那么更新right为当前区间右端和right的较大值反之将当前合并区间加入到结果list中更新left和right为当前区间左右端点遍历结束后将list转化为二维结果数组class Solution { public int[][] merge(int[][] intervals) { Listint[] res new ArrayList(); Arrays.sort(intervals,(a,b) - a[0] - b[0]); int left intervals[0][0]; int right intervals[0][1]; for(int i 1;i intervals.length;i){ if(intervals[i][0] right){ right Math.max(right,intervals[i][1]); }else{ res.add(new int[]{left,right}); left intervals[i][0]; right intervals[i][1]; } } res.add(new int[]{left,right}); return res.toArray(new int[res.size()][2]); } }