Skip to content

按照第一个数字升序排序, 然后合

java
class Solution {
    /**
     * 按照第一个数字升序排序, 然后合
     */
    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals, (p, q) -> p[0] - q[0]);
        List<int[]> ans = new ArrayList<>();
        int[] last = new int[]{intervals[0][0], intervals[0][1]};
        for (int i = 1; i < intervals.length; i++) {
            if (intervals[i][0] <= last[1]) {
                last[1] = Math.max(intervals[i][1], last[1]);
            } else {
                ans.add(last);
                last = intervals[i];
            }
        }
        ans.add(last);
        return ans.toArray(new int[ans.size()][]);
    }
}

Personal Knowledge Base