WEEK2 ?follow /

124 阅读2分钟

Week2

Day1

#215 数组中的第K个最大元素

中间那一块就很像week1的删除重复元素,反正双指针我感觉就是一个用来指需要的位置一个用来遍历。递归要注意出口。

image.png

#300 最长递增子序列

method1——动态规划

image.png

method2——贪心 + 二分查找

greedy数组不初始化大小会报错

image.png

#240 搜索二维矩阵 II

method1——有点技巧的Z解

image.png

method2——每行二分查找

image.png

Day2

#25 K 个一组翻转链表

如果后面把tail->next置为空,函数的循环条件也可以写成while(cur)吧

image.png

#92 反转链表 II

和上一题感觉挺像的:找一下left前一个(pre)和right(tail)

image.png

#23 合并K个升序链表

虽然但是,感觉有点麻烦居然还没写,是每周都要有1题看题解都不愿意看吗……

3/19 update week3还是没逃过哈哈哈 无脑两两合并 or 分治 加油鸭~

#142 环形链表 II

记得推导公式(路程关系),快慢指针相遇后,再设立一个指针pre从head出发,过N圈+c 会和走了 a 路程的pre在环的起始点相遇

image.png

image.png

Day3

#236 二叉树的最近公共祖先

image.png

或者用hash,存储父亲节点。

image.png

#94 二叉树的中序遍历

method1——递归 image.png method2——模拟栈 image.png

#144 二叉树的前序遍历

image.png

#145 二叉树的后序遍历

image.png

Day4

#46 全排列

回溯,选择做完了可能得到一个有效解也可能无解,之后返回上一步。代码有框架,再体会一下

image.png

(47回溯来的(不是

image.png

#47 全排列 II

评论有个很好的解释说明了为什么!vis[i-1] vis[i-1] 都行 因为我们取一种顺序就行了,下标对应的元素相同,1a1b和1b1a取一种即可.看了这题感觉可以浅浅重写一下46题

image.png

#31 下一个排列

image.png

#54 螺旋矩阵

按圈模拟

image.png

#48 旋转图像

:有简单的也有麻烦的 ?:好的!只看简单的(不是

image.png

Day5

#5 最长回文子串

注意 每个字符本身满足回文,当前两个元素相等且长度 <= 3 一定是回文,搞清楚状态转移和临界条件 image.png

#42 接雨水

dp:这个位置所能接的水 等于 左边最高的柱子和右边最高的柱子中 小的那个 减去当前位置的高度

单调栈和双指针的解法还没看 真难啊 好饿啊

image.png

#1143 最长公共子序列

二维dp

image.png

#32 最长有效括号

注意下标溢出问题

image.png