Week2
Day1
#215 数组中的第K个最大元素
中间那一块就很像week1的删除重复元素,反正双指针我感觉就是一个用来指需要的位置一个用来遍历。递归要注意出口。
#300 最长递增子序列
method1——动态规划
method2——贪心 + 二分查找
greedy数组不初始化大小会报错
#240 搜索二维矩阵 II
method1——有点技巧的Z解
method2——每行二分查找
Day2
#25 K 个一组翻转链表
如果后面把tail->next置为空,函数的循环条件也可以写成while(cur)吧
#92 反转链表 II
和上一题感觉挺像的:找一下left前一个(pre)和right(tail)
#23 合并K个升序链表
虽然但是,感觉有点麻烦居然还没写,是每周都要有1题看题解都不愿意看吗……
3/19 update week3还是没逃过哈哈哈 无脑两两合并 or 分治 加油鸭~
#142 环形链表 II
记得推导公式(路程关系),快慢指针相遇后,再设立一个指针pre从head出发,过N圈+c 会和走了 a 路程的pre在环的起始点相遇
Day3
#236 二叉树的最近公共祖先
或者用hash,存储父亲节点。
#94 二叉树的中序遍历
method1——递归
method2——模拟栈
#144 二叉树的前序遍历
#145 二叉树的后序遍历
Day4
#46 全排列
回溯,选择做完了可能得到一个有效解也可能无解,之后返回上一步。代码有框架,再体会一下
(47回溯来的(不是
#47 全排列 II
评论有个很好的解释说明了为什么!vis[i-1] vis[i-1] 都行 因为我们取一种顺序就行了,下标对应的元素相同,1a1b和1b1a取一种即可.看了这题感觉可以浅浅重写一下46题
#31 下一个排列
#54 螺旋矩阵
按圈模拟
#48 旋转图像
:有简单的也有麻烦的 ?:好的!只看简单的(不是
Day5
#5 最长回文子串
注意 每个字符本身满足回文,当前两个元素相等且长度 <= 3 一定是回文,搞清楚状态转移和临界条件
#42 接雨水
dp:这个位置所能接的水 等于 左边最高的柱子和右边最高的柱子中 小的那个 减去当前位置的高度
单调栈和双指针的解法还没看 真难啊 好饿啊
#1143 最长公共子序列
二维dp
#32 最长有效括号
注意下标溢出问题