编辑代码

import java.util.Arrays;
import java.util.Comparator;

public class IntervalCover {
    public static int minCover(int[][] intervals) {
        if (intervals == null || intervals.length == 0) {
            return 0;
        }

        // 按照区间的结束位置排序
        Arrays.sort(intervals, Comparator.comparingInt(a -> a[1]));

        int count = 1;
        int end = intervals[0][1];

        for (int i = 1; i < intervals.length; i++) {
            // 如果下一个区间的起始位置在当前区间的结束位置之后,则需要增加一个区间来覆盖
            if (intervals[i][0] > end) {
                count++;
                end = intervals[i][1];
            }
        }

        return count;
    }

    public static void main(String[] args) {
        int[][] intervals = { { 1, 3 }, { 2, 4 }, { 3, 6 }, { 5, 7 }, { 6, 8 } };
        int minCover = minCover(intervals);
        System.out.println("(20052159何思洁)最小覆盖区间数量为: " + minCover);
    }
}