https://leetcode.cn/problems/SsGoHC/

排序

非常妙!顺便复习了一下Comparator接口自定义排序。

image.png

  1. public static int[][] merge(int[][] intervals) {
  2. if (intervals.length == 0) {
  3. return new int[0][2];
  4. }
  5. Arrays.sort(intervals, new Comparator<int[]>() {
  6. @Override
  7. public int compare(int[] o1, int[] o2) {
  8. return o1[0] - o2[0];
  9. }
  10. });
  11. ArrayList<int[]> merged = new ArrayList<>();
  12. for (int i = 0; i < intervals.length; i++) {
  13. int L = intervals[i][0];
  14. int R = intervals[i][1];
  15. if (merged.size() == 0 || L > merged.get(merged.size() - 1)[1]) {
  16. merged.add(new int[]{L, R});
  17. } else {
  18. merged.get(merged.size() - 1)[1] = Math.max(merged.get(merged.size() - 1)[1], R);
  19. }
  20. }
  21. return merged.toArray(new int[merged.size()][]);
  22. }