合并区间
合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。
示例 1:
1 | 输入:intervals = [[1,3],[2,6],[8,10],[15,18]] |
示例 2:
1 | 输入:intervals = [[1,4],[4,5]] |
提示:
1 <= intervals.length <= 104intervals[i].length == 20 <= starti <= endi <= 104
重点讲一下java的自定义排序
Comparator 的工作原理
接口定义:
Comparator接口定义了以下两个方法:1
2javaCopyEditint compare(T o1, T o2);
boolean equals(Object obj);compare(T o1, T o2):该方法用来比较两个对象o1和o2。它返回一个整数,表示o1和o2的排序顺序:- 如果返回负数 (
< 0),表示o1排在o2前面; - 如果返回正数 (
> 0),表示o1排在o2后面; - 如果返回 0,表示
o1和o2相等。
参数o1的下标小于参数o2,如果返回正数,两个数交换,如果返回负数两个数位置不变
a-b是升序(小根堆),b-a是倒序(大根堆)
- 如果返回负数 (
1 | class MedianFinder { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 面试资料!