56. Merge Intervals


June-19-2019

按startTime排序之后楞做= =

class Solution {
    public int[][] merge(int[][] intervals) {
        if (intervals.length <= 1) return intervals;
        
        Arrays.sort(intervals, new Comparator<int[]>() {
            public int compare(int[] A, int[] B) {
                return Integer.compare(A[0], B[0]);
            }
        });
        
        List<int[]> res = new ArrayList<>();
        int[] prev = intervals[0];

        for (int i = 1; i < intervals.length; i ++) {
            int[] temp = intervals[i];
            if (prev[1] < temp[0]) {
                res.add(prev);
                prev = temp;
            } else if (prev[1] >= temp[1]) {
                continue;
            } else {
                prev[1] = temp[1];
            }
        }
        res.add(prev);
        
        int[][] result = new int[res.size()][2];
        for (int i = 0; i < res.size(); i ++) {
            result[i] = res.get(i);
        }
        return result;

    }
}
posted @ 2016-09-21 07:35  哇呀呀..生气啦~  阅读(139)  评论(0编辑  收藏  举报