编辑代码

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class GreedyIntervalCover {
    static class Interval {
        int start;
        int end;
        public Interval(int start, int end) {
            this.start = start;
            this.end = end;
        }
    }
    public static List<Interval> greedyIntervalCover(List<Interval> intervals) {
        List<Interval> result = new ArrayList<>();
        if (intervals.isEmpty()) return result;
        Collections.sort(intervals, Comparator.comparingInt(i -> i.end));
        Interval current = intervals.get(0);
        result.add(current);
        for (Interval interval : intervals) {
            if (interval.start > current.end) {
                current = interval;
                result.add(current);
            }
        }
        return result;
    }

    public static void main(String[] args) {
        List<Interval> intervals = new ArrayList<>();
        intervals.add(new Interval(1, 3));
        intervals.add(new Interval(2, 4));
        intervals.add(new Interval(3, 6));
        intervals.add(new Interval(5, 7));
        intervals.add(new Interval(8, 9));
        List<Interval> result = greedyIntervalCover(intervals);
        for (Interval interval : result) {
            System.out.println("[" + interval.start + ", " + interval.end + "]");
        }
    }
}