diff --git a/merge-intervals/Yiseull.java b/merge-intervals/Yiseull.java new file mode 100644 index 0000000000..95e9869aa6 --- /dev/null +++ b/merge-intervals/Yiseull.java @@ -0,0 +1,16 @@ +class Solution { + public int[][] merge(int[][] intervals) { + Arrays.sort(intervals, (o1, o2) -> o1[0] - o2[0]); + + int index = 0; + for (int i = 0; i < intervals.length; i++) { + if (intervals[index][1] < intervals[i][0]) { + intervals[++index] = intervals[i]; + } else { + intervals[index][1] = Math.max(intervals[index][1], intervals[i][1]); + } + } + + return Arrays.copyOf(intervals, index + 1); + } +}