【LeetCode】435. Non-overlapping Intervals 解题记录
问题描述
Given an array of intervals intervals where intervals[i] = [starti, endi], return the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping.
测试样例
1 | Input: intervals = [[1,2],[2,3],[3,4],[1,3]] |
1 | Input: intervals = [[1,2],[1,2],[1,2]] |
1 | Input: intervals = [[1,2],[2,3]] |
说明
1 | 1 <= intervals.length <= 2 * 10^4 |
解题
思路
选择的区间结尾越小,余留给其它区间的空间就越大,就越能保留更多的区间。
因此,我们采取的贪心策略为,优先保留结尾小且不相交的区间。
补充:
- 贪心算法
- 数组自定义排序
1
2
3
4
5
6
7Arrays.sort(array, new Comparator<T>() {
public int compare(T a, T b) {
// 排序策略
return a - b;
}
}) - 时间复杂度
O(nlogn)
(排序)
代码
1 | import java.util.Arrays; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 哆啦 C 梦!
评论