WEEK3 ?follow /

192 阅读3分钟

WEEK3

是提升的一周!好好总结体会,多写几遍加深理解~冲呀

Day1

#155 最小栈

借助另外一个最小栈:栈顶元素为当前栈最小值,初始化丢进去一个INT_MAX

image.png

#239 滑动窗口最大值

优先队列具有最高级先出 (first in, largest out)的行为特征

先来个错的

image.png

image.png

要一直判断当前max在不在窗口左侧

image.png

#3 无重复字符的最长子串

image.png

#221 最大正方形

取决于其他三个小块的状态,只有自己是,且其他三个都是才能扩大边长。

image.png

#85 最大矩形

Day2

#200 岛屿数量

image.png

#329 矩阵中的最长递增路径

就是弄个缓存矩阵存储结果如果之前有就直接拿嘛,思路有代码虽然挺丑但为什么wrong answer呢……

——写的和想的不是一回事系列,应该是变化完方向之后再判断下标,我这么写就是四个方向都能走才能进入计算~

image.png

全局变量杀我……(不是

image.png

#113 路径总和 II

有17行就不用21 22再判断了,就是从根一直走到叶子 如果targetsum还不是0就弹出,遇到一个叶子结点就先压进它的值,再做判断,再递归,然后回溯找解。

image.png

#39 组合总和

和上一题一样的框架,这里应该是一个完全背包问题,然后注意这里没有负数

image.png

#40 组合总和 II

image.png

Day3

#23 合并K个升序链表

分治大法好!

image.png

#143 重排链表

自己的解法:

image.png

官题解答:先找中点,然后后半部分reverse,最后重新合并左右链表

image.png

image.png

image.png

#105 从前序与中序遍历序列构造二叉树

image.png

#148 排序链表

image.png

image.png

Day4

#56 合并区间

为啥13行用emplace_back不行 是不是没有这玩意儿?回头百度一下

image.png

#169 多数元素

去年写过,对这个摩尔投票印象蛮深的,此外一般的hash sort 分治也都可以做,有空都写一遍(一定要写!!!!0321

image.png

#41 缺失的第一个正数

method1——奇妙hash

image.png

method2——置换

注意第七行是while

image.png

#11 盛最多水的容器

双指针

image.png

#128 最长连续序列

image.png

#312 戳气球

好好体会

image.png

Day5

#322 零钱兑换

算一个最少硬币数,要一个结果,先遍历背包再遍历物品,对于每一个背包容量我物品的最佳选取方式

image.png

#518 零钱兑换 II

算所有的可能性,并不要最优结果,要所有的选取方式

#122 买卖股票的最佳时机 II

劝人炒股 (x

image.png

有利可图就卖掉,但这个不能代表实际操作过程

image.png

#123 买卖股票的最佳时机 III

关注每一天的最终状态

image.png

#188 买卖股票的最佳时机 IV

前一题基础上再抽象一下

image.png