这题的思路就是先排序后合并
class Solution { public int[][] merge(int[][] intervals) { //先根据数组的第一个元素进行排序 Arrays.sort(intervals, (a, b) -> a[0] - b[0]); List<int[]> ans = new ArrayList<>(); //先把第一个数组放进去 ans.add(intervals[0]); //从第二个数组开始进行比对 for (int i = 1; i < intervals.length; i++) { //先取出遍历到的数组 int[] cur = intervals[i]; //取出列表中最后的一个数组 int[] last = ans.get(ans.size() - 1); //进行比较 if (last[1] >= cur[0]) { //如果重叠 last[1] = Math.max(last[1], cur[1]); }//如果不重叠 else{ ans.add(cur); } } return ans.toArray(new int[ans.size()][]); } }