小记录36

64 阅读1分钟

435. 无重叠区间

当然还是先按照 left 进行排序,然后进行合并,所以实际上返回的是需要合并的次数,

合并时机:当前的 left 小于上一个 right,这时候就要计数了,计数之后把当前的 right 更新成两个的较小值,方便下次比较

763.划分字母区间

一趟便利找每个char的rightmost index,复杂度n

再来一趟便利,记录每个segment长度,一段segment的长度用来build answer

记录方法如下:

  • 初始化 left, right 为 0
  • 从 index-0 元素开始遍历,在遍历过程中不断地更新最远的 right
  • 当遍历到 right时,answer push (right - left + 1), left 赋值为 right + 1

56. 合并区间

简单题,还是先按照 left index sort, 合并区间题目老方法了,然后就开始统计区间个数了,

我的方法如下:

先选取基准,看后边的区间可否合并,并且在合并过程中进行更新区间左右,如果基准区间不可能覆盖当前遍历到的区间,则开始新的一轮基准区间选取与更新,因此这时候也要去 answer push 上一个基准区间

最后返回答案的时候别忘记 push 最后一个基准区间...

怎么更新基准区间?

原则就是要最小程度覆盖到当前遍历到的区间~