Que20|803. 区间合并

29 阅读1分钟
题目:803. 区间合并 - AcWing题库

gpt改错...

代码实现:
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        List<int[]> intervals = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int[] interval = new int[2];
            interval[0] = sc.nextInt();
            interval[1] = sc.nextInt();
            intervals.add(interval);
        }
        
        Collections.sort(intervals, (a, b) -> a[0] - b[0]);
        
        List<int[]> mergedIntervals = new ArrayList<>();
        for (int i = 0; i < intervals.size(); i++) {
            int[] interval = intervals.get(i);
            if (mergedIntervals.isEmpty() || mergedIntervals.get(mergedIntervals.size() - 1)[1] < interval[0]) {
                mergedIntervals.add(interval);
            } else {
                mergedIntervals.get(mergedIntervals.size() - 1)[1] = Math.max(mergedIntervals.get(mergedIntervals.size() - 1)[1], interval[1]);
            }
        }
        
        System.out.println(mergedIntervals.size());
    }
}