【刷题DAY61】.md

DAY61 2023-03-22

剑指 Offer 30. 包含min函数的栈

更优解:差值stack

剑指 Offer 06. 从尾到头打印链表

剑指 Offer 24. 反转链表

头插法及其不熟练

1
2
3
4
5
6
7
8
9
10
class 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
15
def 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]结尾的连续子数组的最大和
贪心还是忘了!!!