Day55_0112
专注时间:3h36min(太少了,本该到5h30~6h的!)
每日任务: 饭后的休息(25min),学习间歇的休息(15min)都用手表计时器来监督
40min =二刷 1 道力扣hot100(如果是hard,只做一道就好 , 完成情况及时长: 40 min );【学习资源:PyTorch官方文档:https://docs.pytorch.ac.cn/tutorials/beginner/basics/intro.html】1.5h=PyTorch工程实操(完成情况及时长: 0把第二个pytorch网页的"局部禁用梯度计算"看懂,就去看第一个pytorch网页 );1h=周志华机器学习(完成情况及时长: 1h ); 1.5h+(claude的RL4LLM学习路径,时长: 30+30 ) ;
学完机器学习,然后是深度学习。学完PyTorch,之后是Transformer与大模型架构(见Gemini3pro生成的阶段2)。学快一点。准备一个GitHub Repo把所有手撕过的算法整理进去,这会是最好的复习资料。
必须熟记的API、最简洁的GPT实现、带注释的Transformer实现、推荐系统模型库(包含主流模型实现)还有"Let's build GPT"系列学习视频见Claude的第20页。 冰哥听讲座,老师说: GPT是最好的老师,不需要其他家教,清华学生智商120,GPT有140。多用大模型来帮助学习。
学习内容:
总结与心得:下午饭后以及中午饭后都各自浪费了1.5个小时,一共损失3小时学习时间,不管心情如何,逼自己去学,15分钟后就能进入学习状态,这样的做法胜过一切。学习间歇休息时间没把控好,学习意愿和态度都太消极。及时改正吧。明天就改。
《114.二叉树展开为链表》
python
# 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 flatten(self, root):
"""
:type root: Optional[TreeNode]
:rtype: None Do not return anything, modify root in-place instead.
"""
#原地将二叉树展开为链表
def unfold(node):
if not node:
return
left = unfold(node.left)
right = unfold(node.right)
node.left = None
node.right = left
cur = node
while cur.right:
cur = cur.right
cur.right = right
#上面用变量left接住了左子树展开的结果(节点头),所以unfold是要有return值的 而不是不return
return node
unfold(root)
return root
python
# 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 flatten(self, root):
"""
:type root: Optional[TreeNode]
:rtype: None Do not return anything, modify root in-place instead.
"""
if not root:
return []
#前序遍历 迭代法
stk = []
pre_node = []
stk.append(root)
while stk:
cur = stk.pop()
pre_node.append(cur)
if cur.right:
stk.append(cur.right)
if cur.left:
stk.append(cur.left)
for i in range(len(pre_node)-1):
pre_node[i].left = None
pre_node[i].right = pre_node[i+1]
return root
python
# 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 flatten(self, root):
"""
:type root: Optional[TreeNode]
:rtype: None Do not return anything, modify root in-place instead.
"""
#自己没做出来。这题需要遍历得到的应该是节点引用,而非节点值
pre_node = []
def dfs(root):
if not root:
return
pre_node.append(root)
dfs(root.left)
dfs(root.right)
dfs(root)
for i in range(len(pre_node)-1):
cur = pre_node[i]
next = pre_node[i+1]
cur.right = next
cur.left = None
return root