双指针问题

发布时间:2026/10/27 2:22:42

双指针问题 283. 移动零一、问题描述二、方法思路方法 双指针原地最优推荐空间 O (1)思路slow记录下一个非 0 元素该放的位置fast遍历数组找非 0 数字fast 遇到非 0和 slow 位置交换slow 右移遇到 0 直接跳过三、代码class Solution: def moveZeroes(self, nums: List[int]) - None: Do not return anything, modify nums in-place instead. # 方法一 # i 0 # s [] # for x in nums: # if x ! 0: # nums[i] x # i 1 # for j in range(i,len(nums)): # nums[j] 0 # return nums # 方法二双指针原地最优推荐空间 O (1) # slow记录下一个非 0 元素该放的位置 # fast遍历数组找非 0 数字 # fast 遇到非 0和 slow 位置交换slow 右移遇到 0 直接跳过 slow 0 for fast in range(len(nums)): if nums[fast] ! 0: nums[slow],nums[fast] nums[fast],nums[slow] slow 1 return nums11. 盛最多水的容器一、问题描述二、方法思路1.两层for循环会超时2.头部和尾部两个指针分别向内收紧比较两侧高度三、代码class Solution: def maxArea(self, height: List[int]) - int: ss 0 # for i in range(len(height)): # for j in range(i): # s min(height[i],height[j])*(i-j) # ss max(s,ss) # return ss first 0 last len(height)-1 while firstlast: s min(height[last],height[first])*(last-first) if s ss: ss s if height[first]height[last]: first first1 else: last last-1 return ss15. 三数之和一、问题描述二、方法思路1.3个数中第一个数字for循环第二个数字从第一个数字后开始向后循环第三个数字从最后一个数字开始向前循环。2.若和为0添加至数列.append([nums[i],nums[j],nums[k]])去重头指针和尾指针同时移动若和小于0则头指针向后移动若和大于0则尾指针向前移动。三、代码class Solution: def threeSum(self, nums: list[int]) - list[list[int]]: n len(nums) nums.sort() s [] for i in range(n): if i0 and nums[i]nums[i-1]: continue j i1 k n-1 while jk: if nums[i]nums[j]nums[k]0: s.append([nums[i],nums[j],nums[k]]) while jk and nums[j]nums[j1]: j 1 while jk and nums[k]nums[k-1]: k - 1 j1 k-1 elif nums[i]nums[j]nums[k]0: j1 else: k-1 return (s)
延伸阅读

更多相关文章

2026/10/26 22:25:46

第3篇:Tools 与 MCP —— 让 LLM 从“只会说“变成“能做事“

LLM 天生只能文字进、文字出。它不能查数据库、不能改文件、不能调用 API——这些能力需要 Tools 来提供。 如果把 LLM 类比成人的大脑,Tools 就是手和脚。大脑能思考,但真正"做事"靠的是手脚。没有 Tools 的 LLM,就像一个能想但不…

2026/10/24 2:51:21

PrivaZer深度解析:Windows系统清理与数据安全擦除实战指南

在日常使用Windows电脑的过程中,我们经常会遇到C盘空间不足、系统运行缓慢的问题。更令人担忧的是,即使我们删除了敏感文件,这些数据仍可能被专业恢复软件还原,存在隐私泄露风险。今天要介绍的PrivaZer就是一款专业的Windows隐私清…

2026/10/25 8:22:20

Ltspice-BLDC直流无刷电机仿真-Part3

承接 Part1 单点瞬态波形观测、Part2 全域 T-n 转矩转速曲线扫描,本篇基于同一套三相 BLDC 全桥仿真电路,利用 LTspice 原生.step参数步进、.measure稳态均值提取,批量求解电机输出功率、母线输入功率、整机效率,绘制转矩 - 功率、…

2026/10/27 2:22:38

智能表格识别技术:突破传统OCR局限的实践指南

1. 项目概述"智能表格识别技术突破传统OCR局限"这个标题背后,反映的是当前文档数字化领域一个长期存在的痛点。作为从业十年的数据工程师,我亲历过无数企业数字化转型项目,最头疼的就是处理那些五花八门的纸质表格——从财务报表到…

2026/10/27 2:22:38

超像素分割与运动放大在非接触呼吸监测中的应用

1. 项目概述:当计算机视觉遇见生命体征监测在医疗监护和健康监测领域,非接触式呼吸监测技术正逐渐成为研究热点。传统接触式传感器(如胸带、鼻气流传感器)存在舒适性差、限制活动等问题,而基于视频分析的方案则提供了全…

2026/10/27 2:22:38

ShardingSphere-JDBC多数据源分库分表实战指南

简介:本资源是一套基于Spring Boot的多数据源与分库分表实战项目,面向Java后端开发者及数据库架构进阶学习者,聚焦高并发场景下数据库水平扩展的核心痛点。项目整合Dynamic-Datasource实现多数据源动态路由,采用Sharding-JDBC完成…

2026/10/27 2:22:38

AI应用架构师的知识管理:三维度框架与实战技巧

1. AI应用架构师的知识管理困境与破局点刚入行AI应用架构那会儿,我经历过典型的"知识焦虑"——每天接触新论文、新框架、新工具,笔记本里塞满了碎片化记录,真正要用时却找不到关键信息。最尴尬的是在一次技术方案评审会上&#xff…

2026/10/27 2:22:38

RestTemplate超时问题排查与Java DNS缓存优化

1. 问题现象与初步排查最近在排查一个生产环境的问题时,遇到了一个令人头疼的情况:使用RestTemplate调用第三方接口时频繁出现超时,但通过Postman测试同样的接口却能在毫秒级别返回。这个问题困扰了我们团队整整两天,最终发现罪魁…

2026/10/26 0:20:20

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/26 1:53:47

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/27 0:59:21

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式19_“模式选错”的典型代价

“模式选错”的典型代价 摘要 在软件工程中,设计模式、架构模式、并发模式乃至团队协作模式的选择,往往在项目早期就决定了后续的开发效率和维护成本。本文通过多个真实场景,剖析“模式选错”带来的典型代价——包括返工成本、技术债务累积、…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式20_新手推荐路径

新手推荐路径 摘要 在 AI 辅助开发工具快速普及的今天,新手面对最多的困惑往往不是"工具够不够强",而是"我该从哪一步开始用"。本文提出一条经过实践验证的三阶段学习路径:先从 Ask(问答式交互)起…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑