力扣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 测试全体系详解(自动化测试框架 + 智能缺陷检测 + A/B 测试优化)

AI 测试全体系详解(自动化测试框架 + 智能缺陷检测 + A/B 测试优化)

前言 人工智能技术的深度落地,彻底重构了软件测试的行业生态,传统手工测试、标准化自动化测试的效率瓶颈被打破,AI 与测试领域的融合催生出三大核心应用方向:AI 驱动的自动化测试框架、AI 智能缺陷检测、AI 赋能的 A/B 测试优化。三者相辅相成,前者解决「测试执行效率与覆盖度」问题,中者解决「缺陷精准识别与根因定位」问题,后者解决「产品体验与业务转化的最优决策」问题,共同构建了从功能验证到质量保障、再到业务价值提升的全链路 AI 测试体系。本文将对三大核心方向进行系统化拆解,包含原理剖析、技术选型、完整可运行代码、Mermaid 标准化流程图、工程化 Prompt 示例、可视化图表、落地最佳实践,覆盖理论与实操全维度,所有内容均可直接落地应用。 一、AI 驱动的自动化测试框架:从脚本化到智能化,重构自动化测试核心逻辑 1.1

By Ne0inhk
我发现了一个能“一锅端”豆包、即梦所有AI水印的骚操作,99%的人都不知道!(附保姆级教程)

我发现了一个能“一锅端”豆包、即梦所有AI水印的骚操作,99%的人都不知道!(附保姆级教程)

大家好,我是顾北,专注于 AI 应用探索与副业实践,长期关注 AI 技术趋势、实用工具以及 Github 线索探索。 前天发布的 Google AI Studio 去除水印的小技巧后,就吸引到很多朋友私聊我说:“豆包、即梦以及不同模型 AI 生成的图片能不能去除水印",针对于这个问题,我这两天就吭哧吭哧的找解决方案,你别说,真的就被我找到了。 不管是即梦还是豆包,不管是针对于懂一点 AI 的普通玩家,还是专业的 AI 绘图设计师,看完这篇文章,都有所获的。 接下来,就按照豆包去水印、即梦去水印、以及后面的最终大招来分享给你。请你仔细阅读完,看到后面有惊喜哦! 一键去除豆包生图水印 去除豆包生成图片水印方式有两种。 *  第一种:去除水印操作简单,方便,缺点是有可能去除不干净。 * 第二种:去除水印操作麻烦一点,但优点是一键去除得很干净。

By Ne0inhk
医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(八)

医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(八)

5.4 性能测试与结果分析 为了评估GoEHRStream的性能,我们设计测试模拟真实的医院数据流场景,并测量关键指标。 5.4.1 实验环境 * 硬件: * CPU: Intel Xeon E-2288G (8 cores, 16 threads) * RAM: 32 GB DDR4 * Storage: 512 GB NVMe SSD (用于GoEHRStream和BadgerDB) * Network: 1 Gbps Ethernet * 软件: * OS: Ubuntu 20.04 LTS * Go: 1.19 * GoEHRStream: 配置见下文。 * 数据源模拟器: 使用Go编写的程序,模拟多个HIS系统并发发送FHIR Observation事件(生命体征)和HL7

By Ne0inhk
让AI应用开发更简单——蚂蚁集团推出企业级AI集成解决方案

让AI应用开发更简单——蚂蚁集团推出企业级AI集成解决方案

让AI应用开发更简单——蚂蚁集团推出企业级AI集成解决方案 🚀 前言 在AI技术快速迭代的当下,企业级AI应用开发面临着多模型适配难、集成成本高、效果验证周期长等痛点。蚂蚁集团推出的百宝箱开放平台(TBOX Open),正是为解决这些行业痛点而生。作为全链路AI能力集成平台,TBOX Open通过标准化接口和工具链,帮助开发者快速构建智能化的业务系统。 文章目录 * 🚀 前言 * 🌟 核心功能解析 * 1. 全形态开发支持 * 2. 模型盲测系统 * 3. 安全防护体系 * 🎁 开发者福利 * 限时权益(即日起至2025.10.31) * 🛠️ 快速入门指南 * 三步完成集成 🌟 核心功能解析 蚂蚁百宝箱开放平台是一个提供全方位AI能力支持的集成式服务开放平台。通过提供OpenAPI、前后端SDK(Python、Java、Nodejs),以及可一键在Web页嵌入智能体对话界面的WebSDK等服务,助力用户在自己的业务流程中快速集成智能体对话、大模型效果盲测等多种AI应用场景,助力业务拥抱AI。 1. 全形态开

By Ne0inhk