news 2026/4/30 14:59:11

学习日记day51

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习日记day51

Day51_1216

专注时间:2H59min

每日任务:2h=复习数据库(完成情况及时长);1h=二刷2道力扣hot100(如果是hard,只做一道就好完成情况及时长:今天都在做算法题,也懈怠了,在宿舍时候没有利用好时间);【学习资源:PyTorch官方文档:https://docs.pytorch.ac.cn/tutorials/beginner/basics/intro.html】1.5h=PyTorch工程实操(完成情况及时长:0把第二个pytorch网页的“局部禁用梯度计算”看懂,就去看第一个pytorch网页);1h=周志华机器学习(完成情况及时长:7);【按照Claude的路线】1h=手撕机器学习算法(完成情况及时长:??);计算机网络45分钟(完成情况及时长:??

学完机器学习,然后是深度学习、搜广推经典模型(也有很多要手撕的,见Claude生成的)。学完PyTorch,之后是Transformer与大模型架构(见Gemini3pro生成的阶段2)。学快一点,学完还要做搜广推的实战项目。准备一个GitHub Repo把所有手撕过的算法整理进去,这会是最好的复习资料。

必须熟记的API、最简洁的GPT实现、带注释的Transformer实现、推荐系统模型库(包含主流模型实现)还有“Let's build GPT”系列学习视频见Claude的第20页。

学习内容: 如上

总结与心得:今天懈怠了,在宿舍根本没学习。忏悔一下。课上的时间也没利用好,网购去了。

《144.二叉树的前序遍历》

# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # 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, val=0, left=None, right=None): # 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, val=0, left=None, right=None): # 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, val=0, left=None, right=None): # 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 l<r: arr[l],arr[r] = arr[r],arr[l] l+=1 r-=1 reverse(res) return res

《94.二叉树的中序遍历》

# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # 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, val=0, left=None, right=None): # 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, val=0, left=None, right=None): # 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, val=0, left=None, right=None): # 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) height+=1 return height

《226.翻转二叉树》

# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # 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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 19:18:11

【老毛桃WinPE启动盘制作全攻略,附镜像获取渠道】

经常遇到电脑蓝屏、系统崩溃、忘记开机密码的情况&#xff1f;别急着送修&#xff01;一个WinPE启动盘就能轻松解决这些问题。今天就给大家带来超详细的老毛桃WinPE启动盘制作教程&#xff0c;从工具准备到系统安装&#xff0c;每一步都讲得明明白白&#xff0c;零基础小白也能…

作者头像 李华
网站建设 2026/4/27 16:57:58

FlutterOpenHarmony商城App底部导航栏组件开发

前言 底部导航栏是移动应用中最常见的导航模式之一&#xff0c;它为用户提供了在应用主要功能模块之间快速切换的能力。在商城应用中&#xff0c;底部导航栏通常包含首页、分类、购物车、我的等核心入口&#xff0c;用户可以通过点击不同的标签页快速访问对应的功能模块。本文…

作者头像 李华
网站建设 2026/4/29 18:42:57

COMSOL锂离子电池仿真技术与应用

在锂离子电池开发过程中&#xff0c;设计参数太多&#xff0c;实验任务繁重&#xff1b;各参数对电池性能的影响不明确&#xff0c;实验设计带有一定的盲目性&#xff0c;有时候甚至会出现费时、费力、费资金&#xff0c;却吃力不讨好的现象。改善这一状况的契机是将电池仿真技…

作者头像 李华
网站建设 2026/4/23 11:05:48

36、高级信号管理:深入理解与应用

高级信号管理:深入理解与应用 1. 信号集操作函数 1.1 基本信号集函数 在信号处理中,有两个初始化信号集的函数。 sigemptyset() 用于清空信号集, sigfillset() 则将所有信号包含在信号集中,它们都返回 0。在进一步使用信号集之前,需要调用这两个函数之一对信号集进…

作者头像 李华
网站建设 2026/4/26 13:18:07

19、Linux 进程管理中的用户、组、会话与守护进程详解

Linux 进程管理中的用户、组、会话与守护进程详解 1. 用户和组 ID 相关概念及操作 在 Linux 系统中,进程的用户和组 ID 是进行权限管理的重要依据,涉及到真实用户 ID、有效用户 ID 和保存用户 ID 等概念。 1.1 真实、有效和保存用户 ID 当进程执行 exec 调用时,通常有…

作者头像 李华