北京平台网站建设哪家好,皮肤自做头像的网站,wordpress访问记录,东营建网站公司Day51_1216专注时间#xff1a;2H59min每日任务#xff1a;2h复习数据库#xff08;完成情况及时长#xff1a;#xff09;#xff1b;1h二刷2道力扣hot100(如果是hard#xff0c;只做一道就好#xff0c;完成情况及时长#xff1a;今天都在做算法题#xff0c;也懈怠…Day51_1216专注时间2H59min每日任务2h复习数据库完成情况及时长1h二刷2道力扣hot100(如果是hard只做一道就好完成情况及时长今天都在做算法题也懈怠了在宿舍时候没有利用好时间)【学习资源PyTorch官方文档https://docs.pytorch.ac.cn/tutorials/beginner/basics/intro.html】1.5hPyTorch工程实操(完成情况及时长0把第二个pytorch网页的“局部禁用梯度计算”看懂就去看第一个pytorch网页)1h周志华机器学习(完成情况及时长7)【按照Claude的路线】1h手撕机器学习算法完成情况及时长计算机网络45分钟完成情况及时长学完机器学习然后是深度学习、搜广推经典模型也有很多要手撕的见Claude生成的。学完PyTorch之后是Transformer与大模型架构见Gemini3pro生成的阶段2。学快一点学完还要做搜广推的实战项目。准备一个GitHub Repo把所有手撕过的算法整理进去这会是最好的复习资料。必须熟记的API、最简洁的GPT实现、带注释的Transformer实现、推荐系统模型库包含主流模型实现还有“Lets build GPT”系列学习视频见Claude的第20页。学习内容 如上总结与心得今天懈怠了在宿舍根本没学习。忏悔一下。课上的时间也没利用好网购去了。《144.二叉树的前序遍历》# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): def __init__(self): self.res [] def preorderTraversal(self, root): :type root: Optional[TreeNode] :rtype: List[int] if not root: return self.res self.res.append(root.val) if root.left : self.preorderTraversal(root.left) if root.right : self.preorderTraversal(root.right) return self.res# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): def preorderTraversal(self, root): :type root: Optional[TreeNode] :rtype: List[int] stk [] res [] if not root: return res stk.append(root) while stk: node stk.pop() res.append(node.val) if node.right: stk.append(node.right) if node.left: stk.append(node.left) return res《145.二叉树的后序遍历》# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): def __init__(self): self.res [] def postorderTraversal(self, root): :type root: Optional[TreeNode] :rtype: List[int] if not root: return self.res if root.left: self.postorderTraversal(root.left) if root.right: self.postorderTraversal(root.right) self.res.append(root.val) return self.res# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): def postorderTraversal(self, root): :type root: Optional[TreeNode] :rtype: List[int] #太难想了。还要reverse res [] if not root: return res stk [] stk.append(root) while stk: node stk.pop() res.append(node.val) if node.left: stk.append(node.left) if node.right: stk.append(node.right) def reverse(arr): l,r 0,len(arr)-1 while lr: arr[l],arr[r] arr[r],arr[l] l1 r-1 reverse(res) return res《94.二叉树的中序遍历》# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): #迭代法怎么写逆天了忘记了 #要记住既然用了递归那么就涉及到栈。现在不用递归了我们就要把这个栈写出来 #还是想不出来 #根据递归法过程中栈的变化去写语句就好了 def inorderTraversal(self, root): :type root: Optional[TreeNode] :rtype: List[int] #处理顺序和访问顺序不一致这就是难点的来源 #使用指针和栈 res [] cur root stk [] while cur or stk: if cur: stk.append(cur) cur cur.left else: cur stk.pop() res.append(cur.val) #还不能写 if cur.right 就是要通过空节点入栈并且指针变空来跳出循环。否则会死循环。而且这里stk不能放入cur.right cur cur.right return res# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): #递归或者迭代 def __init__(self): self.res [] def inorderTraversal(self, root): :type root: Optional[TreeNode] :rtype: List[int] if not root: return self.res if root.left: self.inorderTraversal(root.left) self.res.append(root.val) if root.right: self.inorderTraversal(root.right) return self.res《104.二叉树的最大深度》# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): def maxDepth(self, root): :type root: Optional[TreeNode] :rtype: int #可以是层序遍历时候统计高度 #或想想递归 #递归通过了但是为什么时间复杂度不太理想 if not root: return 0 return max(self.maxDepth(root.left),self.maxDepth(root.right))1# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): def maxDepth(self, root): :type root: Optional[TreeNode] :rtype: int #BFS时候统计高度 #也就是层序遍历 #用的是队列 que deque() if not root: return 0 height 0 que.append(root) while que: size len(que) for _ in range(size): #这里一定要注意用的应该是队列而不是栈 #记一下这些库函数 node que[0] que.popleft() if node.left: que.append(node.left) if node.right: que.append(node.right) height1 return height《226.翻转二叉树》# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution(object): def invertTree(self, root): :type root: Optional[TreeNode] :rtype: Optional[TreeNode] #根节点二叉树的翻转 左右子树的翻转 左右孩子的翻转 #我去我自己想出来自己写的完整的递归没有任何的参考一次过了这就是进步 if not root: return root left self.invertTree(root.left) right self.invertTree(root.right) root.left,root.right right,left return root