当前位置: 首页 > news >正文

网站建设标语文案福田蒙派克空调滤芯安装位置图

网站建设标语文案,福田蒙派克空调滤芯安装位置图,最近高清中文在线字幕在线观看,易安卓做网站一、双指针技术分类 1. 同速双指针(同向移动) 特点:两个指针以相同速度移动适用场景: 链表逆序查找倒数第 k 个元素删除倒数第 n 个节点 2. 快慢双指针(异速移动) 特点:一个指针每次移动 1 步…

一、双指针技术分类

1. 同速双指针(同向移动)

  • 特点:两个指针以相同速度移动
  • 适用场景
    • 链表逆序
    • 查找倒数第 k 个元素
    • 删除倒数第 n 个节点

2. 快慢双指针(异速移动)

  • 特点:一个指针每次移动 1 步,另一个移动 2 步
  • 适用场景
    • 检测链表环存在性
    • 计算环入口和长度
    • 寻找中间节点

二、典型应用与算法实现

2.1 链表逆序

方法一:迭代法(同速双指针)

python

def reverseList(head):prev = Nonecurr = headwhile curr:next_node = curr.next  # 保存后续节点curr.next = prev       # 反转指针方向prev = curr            # 双指针同步移动curr = next_nodereturn prev  # prev最终指向新头节点

  • 复杂度:O (n) 时间,O (1) 空间
方法二:递归法

python

def reverseList(head):if not head or not head.next:return headnew_head = reverseList(head.next)head.next.next = headhead.next = Nonereturn new_head

  • 复杂度:O (n) 时间,O (n) 空间(递归栈)

2.2 查找倒数第 k 个元素

python

def findKthFromEnd(head, k):slow = fast = head# 快指针先走k步for _ in range(k):fast = fast.next# 双指针同步移动while fast:slow = slow.nextfast = fast.nextreturn slow.val

  • 关键点:快慢指针间距保持 k,当快指针到达末尾时,慢指针指向目标节点

2.3 删除倒数第 n 个节点

python

def removeNthFromEnd(head, n):dummy = ListNode(0, head)first = dummysecond = dummy# 快指针先走n+1步for _ in range(n+1):first = first.next# 同步移动直到快指针到达末尾while first:first = first.nextsecond = second.next# 删除操作second.next = second.next.nextreturn dummy.next

  • 技巧:使用虚拟头节点避免处理头节点删除的边界情况

2.4 检测链表环存在性

python

def hasCycle(head):slow = fast = headwhile fast and fast.next:slow = slow.nextfast = fast.next.nextif slow == fast:return Truereturn False

  • 原理:若存在环,快慢指针必然相遇

2.5 计算环入口和长度

python

def detectCycle(head):# 第一步:检测是否存在环slow = fast = headhas_cycle = Falsewhile fast and fast.next:slow = slow.nextfast = fast.next.nextif slow == fast:has_cycle = Truebreakif not has_cycle:return None# 第二步:找到环入口ptr1 = headptr2 = slowwhile ptr1 != ptr2:ptr1 = ptr1.nextptr2 = ptr2.nextreturn ptr1def calculateCycleLength(head):# 先找到环内节点slow = fast = headwhile fast and fast.next:slow = slow.nextfast = fast.next.nextif slow == fast:break# 计算环长度count = 0while True:slow = slow.nextcount += 1if slow == fast:breakreturn count

三、算法复杂度对比

问题类型双指针方法时间复杂度空间复杂度优势
链表逆序迭代O(n)O(1)无栈溢出风险
查找倒数第 k 元素快慢指针O(n)O(1)仅需一次遍历
删除倒数第 n 节点快慢指针O(n)O(1)无需预先计算长度
检测环存在性快慢指针O(n)O(1)最优解法
环入口定位双指针定位O(n)O(1)Floyd 判圈算法变种

四、优化建议与应用场景

1. 优化技巧

  • 虚拟头节点:处理头节点删除时,避免复杂的边界判断
  • 指针间距控制:通过调整快慢指针的初始间距,解决不同问题
  • 两次遍历:在检测环问题中,先用快慢指针检测环,再用同速指针定位入口

2. 典型应用场景

  • 链表操作:LeetCode 206(反转链表)、19(删除倒数第 N 个节点)
  • 环检测:LeetCode 141(环形链表)、142(环形链表 II)
  • 数组问题:双指针法解决两数之和、三数之和等问题
http://www.dtcms.com/a/441304.html

相关文章:

  • 网站服务器失去响应怎么解决网站的图片怎么制作
  • 网站设计佛山甘肃路桥建设集团公司网站
  • 网站网页切换怎么做的攻击wordpress
  • 辽宁建设厅查询网站首页苏州现在可以正常进入吗
  • 海外网站seo优化威海网站建设公司哪家好
  • shopnc本地生活o2o网站系统模板建站难吗
  • 网站建设工具的种类响应式电商网站
  • 网站设计师工资一般多少网站怎么做电脑系统下载
  • 旅游网站建设研究综述自己做网站需要服务器
  • 网站改版用新空间好吗淘宝官网首页登录账号
  • 网站cms识别优秀学习网站
  • 问答网站建设长沙网站seo技术厂家
  • 东莞p2p网站开发费用wordpress主题d8
  • 手机网站列表 教程ps做设计想接私活在什么网站
  • 网站建设与数据库维护 pdfphp 网站模板 x11
  • 如何查询网站开发商北京做网站推广
  • 网站图标按钮用什么做查询网站怎么做的
  • 网站建设公司找博行成都景观设计公司有哪些
  • 哪个网站专门做政策解读电影购票网站开发背景
  • 课程网站建设特色网站推广必做
  • 海淀区手机网站设计服务6国外域名网站推荐
  • 辽宁网站建设论坛网站建设和优化内容最重要性
  • 全国网站建设企业网络运营商有哪几家
  • 网站做信息流政务服务网站 建设方案
  • 30岁女人学网站开发可以吗wordpress 个人照片
  • 音乐播放网站开发pc端wordpress修改站名
  • 网站缩写的英文广州网站开发多少钱
  • wordpress 网站上传到服务器百度发作品入口在哪里
  • 如何做网站的外链seo顾问服务公司
  • 在c盘做网站可以吗阳江本地网络平台