763.划分字⺟区间
思路是找到之前出现的最大下标和,如果当前下标与它相等,就存入答案数组中
1 | /** |
合并区间
排序左区间, 然后比较右区间判断是否进行合并, 跟之前的弓箭射气球一题还是有区别的, 后面可以稍微总结一下
我不应该执着于用双指针解题, 研究了一下正确答案发现双指针不能确保第二个慢指针一直指向res的最后一个数组, j是随着i更新, 而不是res末尾
弓箭射气球题要求的是区间数量, 所以可以用右区间排序, 找右区间的交叉点贪心解决, 这题要合并区间就要左右端点同时考虑
1 | class Solution { |
附上js版本
1 | /** |
用最少数量的箭引爆气球
不断更新最大maxL, 每更新一次, 答案+1, 第一次更新是因为区间最少有一个, 再者这个循环比了n-1次, 最坏情况下我需要n支弓箭才行,所以+ 1
这题贪心在只要有两个以上的气球重叠, 就射爆它, 不用再考虑后面的情况
1 | /** |
无重叠区间
和上一题很相似,但是这题用了双指针
这题要考虑最后上一个区间对下一个的交叉情况, 并不断更新两个指针
1 | /** |