This commit is contained in:
parent
f4912703f9
commit
ff53de285f
@ -112,3 +112,41 @@
|
||||
局部最优:找到当前覆盖区间的元素,使得能最大程度地延长当前覆盖范围。
|
||||
|
||||
过程:一开始第一个元素的值就是初始覆盖区间的长度,遍历这个区间的所有元素,找到这样一个元素,它能够最大程度地延长当前覆盖区间,这个元素就是下一跳。在下一个覆盖区间中,再找到同样的元素,这样一直迭代。
|
||||
|
||||
## [452. 用最少数量的箭引爆气球](https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/)
|
||||
|
||||
全局:
|
||||
|
||||
- 限制:射完全部气球
|
||||
- 目标:消耗的箭的数量最少
|
||||
|
||||
局部:
|
||||
|
||||
- 限制:射箭的范围是当前气球所在的范围
|
||||
- 目标:这一箭要射穿的气球数量达到最大
|
||||
|
||||
算法优化:先对左边界(或右边界)进行排序,以降低时间复杂度。
|
||||
|
||||
## [435. 无重叠区间](https://leetcode.cn/problems/non-overlapping-intervals/)
|
||||
|
||||
从左向右记录非交叉区间的个数,用区间总数减去非交叉区间的个数就是需要移除的区间个数了。问题就是要求非交叉区间的最大个数。
|
||||
|
||||
先按右边界进行排序。
|
||||
|
||||
局部最优:优先选右边界小的区间,所以从左向右遍历,留给下一个区间的空间大一些,从而尽量避免交叉。
|
||||
|
||||
全局最优:选取最多的非交叉区间。
|
||||
|
||||
## [56. 合并区间](https://leetcode.cn/problems/merge-intervals/)
|
||||
|
||||
先按左边界排序。
|
||||
|
||||
局部最优:当前区间能合并出的最长区间
|
||||
|
||||
全局最优:合并所有重叠区间
|
||||
|
||||
## [968. 监控二叉树](https://leetcode.cn/problems/binary-tree-cameras/)
|
||||
|
||||
局部最优:让叶子节点的父节点安摄像头,所用摄像头最少
|
||||
|
||||
全局最优:全部摄像头数量所用最少
|
||||
|
Loading…
Reference in New Issue
Block a user