news 2026/5/30 15:14:46

学习日记day47

作者头像

张小明

前端开发工程师

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

Day47_1210

专注时间:6H21min,学的这么狠,不错!

每日任务:1h=二刷2道力扣hot100(如果是hard,只做一道就好完成情况及时长:);【学习资源:PyTorch官方文档:https://docs.pytorch.ac.cn/tutorials/beginner/basics/intro.html】1.5h=PyTorch工程实操(完成情况及时长:40);1h=周志华机器学习(完成情况及时长:0);【按照Claude的路线】1h=手撕机器学习算法(完成情况及时长:??);计算机网络45分钟(完成情况及时长:??

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

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

学习内容: 如上

总结与心得: 以后hard二刷只做一道,太难了,这道我做了2H32min。早上睡醒不要刷抖音玩手机,戴上耳机点好歌就去洗漱出发图书馆。

《25.K个一组翻转链表》

一旦要思考的很多,就不知道怎么下手,代码也失去了逻辑,试着学习豆包把核心思路列举出来。本题目为字节高频考题。

关于dummy.next指向第一组反转后的头结点是怎么实现的:这样来想,把dummyhead也当做是前一组节点就好了。

# Definition for singly-linked list. # class ListNode(object): # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution(object): def reverseKGroup(self, head, k): """ :type head: Optional[ListNode] :type k: int :rtype: Optional[ListNode] """ #你的代码核心问题在于计数逻辑错误、翻转范围失控、组间连接断裂、空指针未处理,最终导致链表结构混乱,返回值也不对。下面先拆解错误,再给出正确思路和代码。 #不通过时候,再读题目,发现不符合:剩余节点不足K个时候,不处理 #难点:翻转后要正确连接各组(前一组的尾 → 当前组翻转后的头,当前组翻转后的尾 → 下一组的头) #一次遍历:fast(初始化head)节点与cnt来统计节点数量。当cnt==k,开始翻转,翻转完成后fast移动一位,pre = cur,cur = fast #没有先检查「剩余节点是否够 k 个」,直接翻转,导致不足 k 个的节点也被错误翻转。 #就没想到3组之间的连接 #整理一下思路: #1.用dummyhead处理头结点翻转的边界情况 #2. 用pre指向当前组的前一个节点(初始为dummyhead),end指向当前组的最后一个节点(初始为pre) #3.每次先检查从end开始是否有K个节点,不足则直接返回结果 #4.翻转当前组的链表,连接【前一组—>当前组->下一组】 #5.更新pre和end进入下一组循环 # 没想到:哑节点用于固定新链表的头(解决返回值错误) dummyhead = ListNode(0) dummyhead.next = head pre,end,cur = dummyhead,dummyhead,head #当下一个节点非空(还有节点)时候进入循环 while end.next: #这个for比while好用 for _ in range(k): end = end.next if not end:# 不足k个,直接返回结果(剩余节点不处理) return dummyhead.next # 4. 记录关键节点(解决组间连接断裂): next_group = end.next # 下一组的起始节点(翻转前先记下来) start = cur # 当前组的起始节点(翻转后会变成组尾) # 5. 你的翻转逻辑改造:翻转当前组的k个节点 # 重置翻转用的pre_node(避免和外层pre混淆) pre_node = None tmp_cur = start # 临时cur,避免修改原cur的指向。这里如果有点晕,就去写一个翻转链表函数来调用 # 翻转k个节点(替代你原有的while cnt==k,解决翻转范围失控) #注意这里不是while,不然会死循环,翻转K各一组就够了 所以用for for _ in range(k): tmp = tmp_cur.next tmp_cur.next = pre_node pre_node = tmp_cur tmp_cur = tmp # 6. 组间连接(核心!解决链表断裂): start.next = next_group# 前一组的尾 → 当前组翻转后的头 pre.next = pre_node# 当前组翻转后的尾 → 下一组的头 #更新变量,进入下一组;pre cur end 这里要画图才能懂 pre = start end = start #或者end = pre cur = next_group #你最后 return pre,但 pre 只是最后一次翻转的临时头节点,没有利用 dummyhead 保存整个链表的头,导致返回的链表不完整。 return dummyhead.next
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution(object): #第一次遇到这种函数写法,记一下 #翻转一个子链表,并且返回新的 头 与 尾 def reverse(self,head,tail): pre = tail.next p = head #这个写法第一次见 while pre != tail: nex = p.next p.next = pre pre = p p = nex #返回新的头与尾 #返回尾部(也就是新的头),返回头部(也就是新的尾) return tail,head def reverseKGroup(self, head, k): """ :type head: Optional[ListNode] :type k: int :rtype: Optional[ListNode] """ #写官方解法 dummyhead = ListNode(0) dummyhead.next = head pre = dummyhead while head: tail = pre for _ in range(k): tail = tail.next if not tail: return dummyhead.next nex = tail.next head,tail = self.reverse(head,tail) tail.next = nex pre.next = head pre = tail head = nex return dummyhead.next

“翻转一个子链表,并且返回新的 头 与 尾” 这种函数第一次见,积累一下。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 1:50:20

第 3 篇:从悲观到希望:如何打破“绝对化”的绝望?

《解锁真正的自我:一场深入内心的成长之旅》专栏 系列二:升级 心智之战 —— 重塑你看世界的方式 朋友们好,我们继续《解锁真正的自我》专栏的第二系列——“升级心智之战”。 在前两篇文章中,我们先后拆解了阻碍成长的“僵固型思维”,以及让我们活得沉重焦虑的“应该…

作者头像 李华
网站建设 2026/5/30 21:27:45

在WebStorm中合并分支

1、切换到要合并的分支2、选择要合并的分支3、提交1、点击左上角的提交按钮出现了这个页面2、点击更改的地方查看是否有冲突的地方手动解决冲突3、点击点击并推送如果没有问题就一直推送就ok了

作者头像 李华
网站建设 2026/5/30 1:06:50

企业照明能否做到“按场景自动运行”?开关驱动器给出了一个现实解法

安科瑞刘鸿鹏在数字化转型成为企业刚需的背景下,照明系统不再只是“开与关”的基础设施,而成为涉及节能管理、安全联动、运营维护的数据入口。本文围绕企业楼宇照明场景,探讨智能开关驱动器在现代照明系统中的应用价值,并结合工程…

作者头像 李华
网站建设 2026/5/31 1:49:03

银河麒麟服务器版操作系统Kylin-Server-V11 安装-MySQL-8.0和MySQL-8.4教程

交-流:831037125 By------云南乐嘟信息技术有限公司------ 个.人.淘.宝.店:首页-专业国产化信创软件服务-淘宝网.喜.欢.的.可.以.支.持.一.下 8.0安装包下载地址:(华为欧拉系统)openEuler-22.03、openEuler-24.03-MySQL-8.0安装包-持续更新…

作者头像 李华
网站建设 2026/5/30 22:15:37

CFD: 曲线坐标网格(Curvilinear Grids)资料

文章目录一、基本理论背景1. 坐标变换原理2. 控制方程在曲线坐标下的形式3. 优势与挑战二、经典理论参考资料三、支持曲线坐标网格的开源 CFD 项目1. **Nek5000 / NekRS**2. **OpenFOAM(部分功能)**3. **CFL3D(NASA)**4. **OVERFL…

作者头像 李华
网站建设 2026/5/30 20:42:16

AList多平台一键部署指南:新手也能轻松搭建个人云盘

AList多平台一键部署指南:新手也能轻松搭建个人云盘 【免费下载链接】alist 项目地址: https://gitcode.com/gh_mirrors/alis/alist 在数字化时代,我们的文件往往分散在不同的云存储平台中,阿里云盘、百度网盘、OneDrive等各有千秋&a…

作者头像 李华