扫描线

扫描线

public int removeCoveredIntervals(int[][] intervals) {
    Arrays.sort(intervals, (a, b) -> {
        if (a[0] == b[0]) return b[1] - a[1];
        return a[0] - b[0];
    });
    int prevEnd = 0, curEnd = 0;
    int res = 0;
    for (int[] t : intervals) {
        curEnd = t[1];
        if (curEnd > prevEnd) {
            res++;
            prevEnd = curEnd;
        }
    }
    return res;
}

Last updated