diff --git a/java8/src/main/java/com/ggggght/learningjava8/leetcode/Leetcode56.java b/java8/src/main/java/com/ggggght/learningjava8/leetcode/Leetcode56.java new file mode 100644 index 0000000..96303c7 --- /dev/null +++ b/java8/src/main/java/com/ggggght/learningjava8/leetcode/Leetcode56.java @@ -0,0 +1,61 @@ +package com.ggggght.learningjava8.leetcode; + +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.PriorityQueue; + +/** + *
+ * + * Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input. + * + * + * + * Example 1: + * + * Input: intervals = [[1,3],[2,6],[8,10],[15,18]] + * Output: [[1,6],[8,10],[15,18]] + * Explanation: Since intervals [1,3] and [2,6] overlap, merge them into [1,6]. + * Example 2: + * + * Input: intervals = [[1,4],[4,5]] + * Output: [[1,5]] + * Explanation: Intervals [1,4] and [4,5] are considered overlapping. + * + * + * Constraints: + * + * 1 <= intervals.length <= 104 + * intervals[i].length == 2 + * 0 <= starti <= endi <= 104 + *+ * + */ +public class Leetcode56 { + /** + * 使用优先队列进行排序对所有的区间进行排序 排序完成之后, 依次遍历第一个元素的第二项, 如果和上一项有重叠, 则更新, 否则就添加当前项 + * @param intervals + * @return + */ + public int[][] merge(int[][] intervals) { + PriorityQueue