区间问题总结

区间问题、线段问题、时间分配问题都是同一类型的问题。给你一个数组,里面存的是一个[start, end]的数据,然后考察一些这个区间之间的关系,比如:

  1. 有多少个互不重叠的区间。—— 452: Burst Balloons
  2. 至少要删除多少个区间才可以使剩余的区间互不重叠。—— 435: Non-Overlapping Intervals
  3. 这些区间最多的时候重叠了多少次,在什么时候发生。—— 253: Meetings Rooms II
  4. 找出交集。—— 986: Interval List Intersections

有时候也会对这些区间进行一些操作:

  1. 合并重叠了的区间。—— 56: Merge Intervals
  2. 删除被覆盖的区间。—— 1288: Remove Covered Intervals

这些问题很多时候都感觉无从下手,不要着急,先尝试分析问题,或者将他们转化成我们易于理解分析的问题。

  1. 排序。分别按照startend来排序,通过分析极端情况判断是否简化了问题:结束晚,开始早。
  2. 找规律。暴力求解是否可行?贪婪求解是否可行?列出所有可能的情况分析。
· 面试笔记