DAY61 2023-03-22
剑指 Offer 30. 包含min函数的栈
更优解:差值stack
剑指 Offer 06. 从尾到头打印链表
剑指 Offer 24. 反转链表
头插法及其不熟练1
2
3
4
5
6
7
8
9
10class Solution:
def reverseList(self, head):
preNode = None
currNode = head
while currNode:
nextNode = currNode.next
currNode.next = preNode
preNode = currNode
currNode = nextNode
return preNode
DAY62 2023-03-23
剑指 Offer 35. 复杂链表的深复制
map:{key: value},key是旧节点,value是新节点,有点绕
剑指 Offer 05. 替换空格
之前做过,还是对切片不熟练
DAY63 2023-03-24
剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 03. 数组中重复的数字
空间复杂度为O(1)的原地置换!品一下!妙!让萝卜回家
DAY64 2023-03-25
剑指 Offer 53 - I. 在排序数组中查找数字 I
剑指 Offer 53 - II. 0~n-1中缺失的数字
没想到二分法
!!!排序数组中的搜索问题,首先想到 二分法 解决。!!!
剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
没做出来
从右上角的角度看,这种规律的二维矩阵可以看成是一个二叉搜索树,左孩子比根节点小,右孩子比根节点大
DAY65 2023-03-26
剑指 Offer 11. 旋转数组的最小数字
有点难想二分法
没做出来,二分法,二分法需要分类讨论 < > == 的情况,是否能判断,不能判断就缩小范围。
剑指 Offer 50. 第一个只出现一次的字符
剑指 Offer 32 - I. 从上到下打印二叉树
层序遍历 又有点不熟练了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15def levelOrder(self, root: TreeNode) -> List[int]:
if not root:
return []
que = deque()
que.append(root)
res = []
while(que):
cur = que.popleft()
res.append(cur.val)
if(cur.left):
que.append(cur.left)
if(cur.right):
que.append(cur.right)
return res
DAY66 2023-03-27
剑指 Offer 32 - II. 从上到下打印二叉树 II
剑指 Offer 32 - III. 从上到下打印二叉树 III
剑指 Offer 26. 树的子结构
没做出来 遍历主树,遇到值相同的节点就去判断 是否是子树
是否是子树,需要单独写一个函数
DAY67 2023-03-28 需要复习
剑指 Offer 27. 二叉树的镜像
看了解析 做出来的
剑指 Offer 28. 对称的二叉树
做错了
剑指 Offer 10- I. 斐波那契数列
递归超时,动规做错
DAY68 2023-03-29 需要复习
剑指 Offer 10- II. 青蛙跳台阶问题
剑指 Offer 63. 股票的最大利润
又忘了!!
dp[i][0] dp[i][1] 第i天持有、不持有
贪心也忘了!!!
剑指 Offer 42. 连续子数组的最大和
还是忘了!!!
dp[i] 以nums[i]结尾的连续子数组的最大和
贪心还是忘了!!!