学习日记day54

Day54_0111

专注时间:55min

每日任务: 饭后的休息(25min),学习间歇的休息(15min)都用手表计时器来监督

40min =二刷 1 道力扣hot100(如果是hard,只做一道就好 完成情况及时长: 55min );【学习资源:PyTorch官方文档:https://docs.pytorch.ac.cn/tutorials/beginner/basics/intro.html】1.5h=PyTorch工程实操(完成情况及时长: 0把第二个pytorch网页的"局部禁用梯度计算"看懂,就去看第一个pytorch网页 );1h=周志华机器学习(完成情况及时长: ); 1.5h+(claude的RL4LLM学习路径,时长: + )

学完机器学习,然后是深度学习。学完PyTorch,之后是Transformer与大模型架构(见Gemini3pro生成的阶段2)。学快一点。准备一个GitHub Repo把所有手撕过的算法整理进去,这会是最好的复习资料。

必须熟记的API、最简洁的GPT实现、带注释的Transformer实现、推荐系统模型库(包含主流模型实现)还有"Let's build GPT"系列学习视频见Claude的第20页。 冰哥听讲座,老师说: GPT是最好的老师,不需要其他家教,清华学生智商120,GPT有140。多用大模型来帮助学习。

学习内容:休息了一天

总结与心得:出去玩了,感觉不错。

《230二叉搜索树中第K小的元素》

第一次学写:指定递归层数(终止递归)

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 kthSmallest(self, root, k):
        """
        :type root: Optional[TreeNode]
        :type k: int
        :rtype: int
        """
        stk = []
        cur = root
        cnt = 0
        while stk or cur:
            if cur:
                stk.append(cur)
                cur = cur.left
            else:
                cur = stk.pop()
                cnt += 1
                if cnt == k:
                    return cur.val
                cur = cur.right
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 kthSmallest(self, root, k):
        """
        :type root: Optional[TreeNode]
        :type k: int
        :rtype: int
        """
        #中序遍历(迭代/递归)得到的数据,输出第k-1个
        #记录递归深度,迭代次数。到达第k次时候终止并输出
        #递归的终止怎么写?学一下,之前不会
        self.cnt = 0
        self.res = None
        def dfs(root):
            if not root or self.res is not None:
                return
             
            dfs(root.left)
            self.cnt+=1
            if self.cnt == k:
                self.res = root.val
            dfs(root.right)
        
        dfs(root)
        return self.res

《199二叉树的右视图》

天才!自己想出来然后自己debug出来了。

为什么一定要用deque() 而不是list:

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 rightSideView(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: List[int]
        """
        #观察到每层只有一个节点加入到答案中去
        #层序遍历,每层的单个节点从栈pop出去,然后将其左右孩子入栈
            #设置 rowstk 输出其栈头元素

        if not root:
            return []
        #层序遍历
        que = deque()
        res = []
        que.append(root)
        while que:
            size = len(que)
            res.append(que[-1].val)
            for _ in range(size):
                node = que.popleft()
                if node.left:
                    que.append(node.left)
                if node.right:
                    que.append(node.right)
        return res

灵茶山艾府题解:既然是找右视图,那就先递归右子树,然后再递归左子树。过程中:1怎么把答案记下来;2怎么判断当前节点要不要记录到答案中。解决办法:在递归的同时记录一个节点个数或者说递归深度,如果递归深度等于当前答案的长度,那么这个节点就到记录到答案中。这个方法很好,记忆随时翻出来看看。

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 rightSideView(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: List[int]
        """
        res = []
        def dfs(node,depth):
            if not node:
                return 
            if len(res) == depth:
                res.append(node.val)
            dfs(node.right,depth+1)
            dfs(node.left,depth+1)
        dfs(root,0)
        return res
相关推荐
Gary Studio22 分钟前
rk芯片驱动编写
linux·学习
mango_mangojuice24 分钟前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
lingggggaaaa41 分钟前
安全工具篇&动态绕过&DumpLsass凭据&Certutil下载&变异替换&打乱源头特征
学习·安全·web安全·免杀对抗
PP东1 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
学电子她就能回来吗1 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github
AI视觉网奇3 小时前
ue 角色驱动衣服 绑定衣服
笔记·学习·ue5
wdfk_prog4 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
ZH15455891316 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter
编程小白20266 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
学历真的很重要6 小时前
【系统架构师】第二章 操作系统知识 - 第二部分:进程与线程(补充版)
学习·职场和发展·系统架构·系统架构师