力扣hot100_链表(3)_python版本

力扣hot100_链表(3)_python版本

一、25. K 个一组翻转链表

1.1、206. 反转链表

在这里插入图片描述
  • py代码
classListNode:def__init__(self, val=0,next= node): self.val = val self.next=nextclassSolution:defreverseList(self, head): pre =None cur = head while cur:next= cur.next cur.next= pre pre = cur cur =nextreturn pre 

1.2、92. 反转链表 II

在这里插入图片描述
  • 思路:
    整体来看,1是反转前的第left个节点(p0.next),pre(4)是反转的后的头节点,cur是当前遍历到的节点下一个(5)。
classSolution:defreverseBetween(self, head, left, right): p0 = dummy = ListNode(next= head)# 这样一起实例化,p0和dummy永远都是指向同一位置for _ inrange(left-1): p0 = p0.next# 知道转换的前一个结点 pre =None cur = p0.next# 当前正在处理的节点for _ inrange(right-left+1) nxt = cur.next cur.nxt = pre pre = cur cur = nxt p0.next.next= cur p0.next= pre return dummy.next
在这里插入图片描述
  • 代码:
classSolution:defreverseKGroup(self, head, k): n =0 cur = head while cur: n +=1 cur = cur.next p0 = dummy = ListNode(next= head) pre =None cur = head # k个一组处理while n >= k: n -= k for _ inrange(k): nxt = cur.next cur.next= pre pre = cur cur = nxt nxt = p0.next nxt.next= cur p0.next= pre p0 = nxt 

二、148. 排序链表

2.1、876. 链表的中间结点

在这里插入图片描述
  • 代码:这道题典型的快慢指针
# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclassSolution:defmiddleNode(self, head: Optional[ListNode])-> Optional[ListNode]: t1 = t2 = head while t2 and t2.next: t1 = t1.next t2 = t2.next.nextreturn t1 

2.2、21. 合并两个有序链表

在这里插入图片描述
  • 代码:
classSolution:defmergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode])-> Optional[ListNode]: dummy = ListNode() cur = dummy while list1 and list2:if list1.val <= list2.val: cur.next= list1 cur = cur.next list1 = list1.nextelse: cur.next= list2 cur = cur.next list2 = list2.nextif list1: cur.next= list1 else: cur.next= list2 return dummy.next
在这里插入图片描述
  • 思路1:归并排序
    找到链表的中间节点,断开为前后两端,分别排序前后两端,排序后,再合并两个有序链表。
  • 代码1:
classSolution:# 876. 链表的中间结点(快慢指针)defmiddleNode(self, head: Optional[ListNode])-> Optional[ListNode]: slow = fast = head while fast and fast.next: pre = slow # 记录 slow 的前一个节点 slow = slow.next fast = fast.next.next pre.next=None# 断开 slow 的前一个节点和 slow 的连接return slow # 21. 合并两个有序链表(双指针)defmergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode])-> Optional[ListNode]: cur = dummy = ListNode()# 用哨兵节点简化代码逻辑while list1 and list2:if list1.val < list2.val: cur.next= list1 # 把 list1 加到新链表中 list1 = list1.nextelse:# 注:相等的情况加哪个节点都是可以的 cur.next= list2 # 把 list2 加到新链表中 list2 = list2.next cur = cur.next cur.next= list1 if list1 else list2 # 拼接剩余链表return dummy.nextdefsortList(self, head: Optional[ListNode])-> Optional[ListNode]:# 如果链表为空或者只有一个节点,无需排序if head isNoneor head.nextisNone:return head # 找到中间节点 head2,并断开 head2 与其前一个节点的连接# 比如 head=[4,2,1,3],那么 middleNode 调用结束后 head=[4,2] head2=[1,3] head2 = self.middleNode(head)# 分治 head = self.sortList(head) head2 = self.sortList(head2)# 合并return self.mergeTwoLists(head, head2)

Read more

“现在的AI就像1880年的笨重工厂!”微软CSO斯坦福泼冷水:别急着造神

“现在的AI就像1880年的笨重工厂!”微软CSO斯坦福泼冷水:别急着造神

大模型仍未对上商业的齿轮? 编译 | 王启隆 来源 | youtu.be/aWqfH0aSGKI 出品丨AI 科技大本营(ID:rgznai100) 现在的硅谷,空气里都飘着一股“再不上车就晚了”的焦躁感。 最近 OpenClaw 风头正旺,强势登顶 GitHub,终结了 React 神话,许多人更是觉得“AI 自己干活赚钱”的日子就在明天了。 特别是在斯坦福商学院(GSB)这种地方,台下坐着的都是成天琢磨怎么用下一个技术风口搞个独角兽出来的狠人。 微软的首席科学官(CSO)Eric Horvitz 被请到了这个几乎全美最想用 AI 变现的礼堂里。作为从上世纪 80 年代就开始搞 AI 的绝对老炮、也是微软技术底座的“扫地僧”,这位老哥并没有顺着台下的胃口,去吹捧下个月大模型又要颠覆什么行业,而是兜头给大家浇了一盆带点学术味的冷水。 他讲了一个挺有画面感的比喻:大家都在聊

By Ne0inhk
Godot被AI代码“围攻”!维护者崩溃发声:“不知道还能坚持多久”

Godot被AI代码“围攻”!维护者崩溃发声:“不知道还能坚持多久”

整理 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews) 当大模型能在几秒钟内生成一段“看起来像那么回事”的补丁时,开源社区却开始付出另一种代价。 最近,开源游戏引擎 Godot 的核心维护团队公开吐槽:他们正被大量“AI 生成的低质量代码”淹没。那些代码往往结构完整、注释齐全、描述洋洋洒洒,但真正的问题是——提交者可能并不理解自己交上来的内容。 这件事,并不是简单的“有人偷懒用 AI 写代码”。它正在触及开源协作最核心的东西:信任。 一场悄无声息的“AI 洪水” 事情的导火索来自一条 Bluesky 讨论帖。 Godot 主要维护者之一、同时也是 Godot 商业支持公司 W4 Games 联合创始人的 Rémi Verschelde 表示,所谓的“AI slop”

By Ne0inhk
诺奖得主辛顿最新访谈:1 万个 AI 可以瞬间共享同一份“灵魂”,这就是为什么人类注定被超越

诺奖得主辛顿最新访谈:1 万个 AI 可以瞬间共享同一份“灵魂”,这就是为什么人类注定被超越

当宇宙级的“嘴炮”遇到降维打击。 编译 | 王启隆 来源 | youtu.be/l6ZcFa8pybE 出品丨AI 科技大本营(ID:rgznai100) 打开最新一期知名播客 StarTalk 的 YouTube 评论区,最高赞的一条留言是这样写的: “我长这么大,第一次看到尼尔·德葛司·泰森(Neil deGrasse Tyson)在一档节目里几乎全程闭嘴,像个手足无措的小学生一样乖乖听讲。” 作为全美最知名的天体物理学家,泰森平时的画风是充满激情、喋喋不休、用宇宙的宏大来震撼嘉宾。但这一次,坐在他对面的那位满头银发、带着温和英音的英国老人,仅仅用最平淡的语气,就让整个演播室陷入了数次令人窒息的沉默。 这位老人是 Geoffrey Hinton。深度学习三巨头之一,2024 年诺贝尔物理学奖得主,被公认为“AI 教父”。 对经常阅读 Hinton 演讲的我来说,这也是比较新奇的一幕—

By Ne0inhk
48小时“烧光”56万!三人创业团队濒临破产,仅因Gemini API密钥被盗:“AI账单远超我们的银行余额”

48小时“烧光”56万!三人创业团队濒临破产,仅因Gemini API密钥被盗:“AI账单远超我们的银行余额”

整理 | 苏宓 出品 | ZEEKLOG(ID:ZEEKLOGnews) 「仅过了 48 小时,一笔 8.2 万美元的天价费用凭空出现,较这家小型初创公司的正常月费暴涨近 46000%。」 这不是假设的虚幻故事,而是一家墨西哥初创公司正在经历的真实危机。 近日,一位名为 RatonVaquero 的开发者在 Reddit 发帖求助称,由于他的 Gemini API 密钥被盗用,原本每月仅约 180 美元(约 1242 元)的费用,在短短 48 小时内暴涨到 82,314.44 美元(约 56.8 万元)。对于这家只有三名开发者的小型创业团队来说,这笔突如其来的账单,几乎等同于灭顶之灾。 “我现在整个人都处在震惊和恐慌之中。”RatonVaquero

By Ne0inhk