不同路径

思路
- 看着就像个dp,一个格子多一点的上楼梯
- 机器人从上往下,从左往右,所以说当前格子的路径数量等于左边格子的路径数量+上面格子的路径数量
代码
1 | class Solution: |
合并区间

思路
- 首先先将区间的起点按照从小到大的顺序排序
- 开始合并,如果当前区间的起点小于前一个区间的终点,将它们并起来
- 最后得到合并区间的结果
代码
1 | class Solution: |
颜色分类

思路
- 一个排序,练一练快排
1 | class Solution: |
最小覆盖子串

思路
- 滑动窗口
- 窗口用left,right两个指针划定。左指针遍历到第一T中的字符时停住,右指针从左指针的位置向后移动,直到窗口中包含T中的所有字符,统计当前的字符数量。
- 随后左指针向后移动,若窗口内的字符仍然包含T中的所有字符,更新窗口大小并继续向后移动
- 若窗口内的字符没有完全包含T中的字符,左指针重新定住,右指针向后移动,重复第2、3步的操作。
- 最后,直到右指针遍历完整个S字符,结束,返回最小的窗口大小
代码
1 | class Solution: |
子集

思路
- 创建一个结果集,结果集中有一个[]元素,称结果集为basement
- 从nums第一个元素开始,每次遍历到一个新的元素,就用basement中的元素与当前元素组合,就能得到当前元素的全所有结果
- 将当前元素的结果加入结果集,为下一个元素basement
1 | class Solution: |