尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
力扣双指针
283. 移动零所有0移动到数组的末尾同时保持非零元素的相对顺序。暴力 遍历,记录0元素数量,移动非0元素相对位置 后续补0 class Solution: def moveZeroes(self, nums: List[int]) - None: count0 for i in range(len(nums)): if nums[i]0: count 1 else: nums[i-count]nums[i] for i in range(len(nums)-count,len(nums)): nums[i]0 return nums双指针,快慢指针 慢指针记录下一个非零元素应该存放的位置 快指针遍历数组寻找非零元素 class Solution: def moveZeroes(self, nums: List[int]) - None: slow 0 for fast in range(len(nums)): if nums[fast] ! 0: nums[fast],nums[slow] nums[slow] ,nums[fast] slow 111.盛水最多容器示例 1输入[1,8,6,2,5,4,8,3,7]输出49解释图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下容器能够容纳水表示为蓝色部分的最大值为 49。双指针,一个头一个尾能装多少水取决于短板计算当前水量,判断哪个板短,移动短的保存最大水量class Solution: def maxArea(self, height: List[int]) - int: max_out0 i,j0,len(height)-1 while ij: if height[i]height[j]: max_outmax(max_out,height[i]*(j-i)) i 1 else: max_outmax(max_out,height[j]*(j-i)) j - 1 return max_out15.三数之和整数数组nums判断是否存在三元组[nums[i], nums[j], nums[k]]满足i ! j、i ! k且j ! k同时还满足nums[i] nums[j] nums[k] 0。请你返回所有和为0且不重复的三元组。排序-一个固定元素遍历数组,在这个元素后设立左右指针判断target-大于0移动右指针-小于0移动左指针,等于0记录,并跳过重复元素,之后移动双指针class Solution: def threeSum(self, nums: List[int]) - List[List[int]]: #判断长度是否符合要求不符合返回空 if len(nums)3: return [] #创建list result [] #原数组排序,小到大 nums.sort() #双指针,i当前位置,左指针i1,右指针指向尾 for i in range(len(nums)-2): #跳过重复的i if i 0 and nums[i] nums[i-1]: continue #i0则后续都0,直接break if nums[i] 0: break #左右指针 left i1 right len(nums)-1 while left right: #三数和 target nums[i]nums[left]nums[right] #和0 移动左指针(之前已排序) if target 0: right - 1 #和0 移动右指针 elif target 0: left 1 #和0,添加结果 #同时跳过左右指针相同的元素 #保存本次结果后要移动左右指针 else: result.append([nums[i],nums[left],nums[right]]) while leftright and nums[right-1] nums[right]: right - 1 while leftright and nums[left1] nums[left]: left 1 left 1 right - 1 return result42.接雨水*示例 1输入height [0,1,0,2,1,0,1,3,2,1,2,1]输出6解释上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图在这种情况下可以接 6 个单位的雨水蓝色部分表示雨水。这破玩意真反直觉左右指针,二者计算身后能存多少水,直至相遇class Solution: def trap(self, height: List[int]) - int: water 0 left,right 0, len(height)-1 max_left,max_right 0,0 #双向指针 while left right: #蓄水量取决于当前短板 #左小于右肯定计算左边 if height[left] height[right]: #左指针高度高于左边最大值,目前不能存水 #更新最大值 if height[left] max_left: max_left height[left] #能存水,计算高度差 else: water max_left - height[left] #移动左指针 left 1 else: if height[right] max_right: max_right height[right] else: water max_right - height[right] right - 1 return water
RELATED

相关推荐

Vibe Coding:面向工程落地的AI编程新范式

Vibe Coding:面向工程落地的AI编程新范式

1. 这不是又一个“AI编程”概念炒作,而是开发工作流正在被悄悄重写“Vibe Coding”这个词刚冒出来的时候,我正蹲在客户现场调一个嵌入式设备的串口通信协议。同事甩来一张截图:某开发者在聊天框里敲了句“让这个按钮点击后弹出带时间戳的toas…

📅 2026/9/14 7:55:29
C++设计模式实战:从多态到工厂模式,构建可维护的工业级代码

C++设计模式实战:从多态到工厂模式,构建可维护的工业级代码

1. 项目概述:为什么C开发者绕不开设计模式?干了这么多年C,我见过太多项目,初期跑得飞快,代码写得随心所欲,功能堆叠也快。但一到中期,需求开始变化,或者团队有新成员加入&#xff0c…

📅 2026/9/9 22:35:26
C盘清理工具深度清理释放空间好用

C盘清理工具深度清理释放空间好用

软件介绍 今天带来的第二款叫LightC,是一款C盘清理工具。C盘清理工具之前推荐过CCleaner,也蛮好用的,有需要的小伙伴可以去文档里获取。 清理功能很全面 LightC支持清理系统缓存、临时文件、日志、卸载残留、注册表冗余,支持大…

📅 2026/8/20 20:43:37
MORE NEWS

更多资讯

📰

SurfSense 实体信号审计清单:47 项信号驱动的品牌实体与知识图谱优化实战

SurfSense 实体信号审计清单:47 项信号驱动的品牌实体与知识图谱优化实战 【免费下载链接】SurfSense Open-source NotebookLM alternative. Research the open web with live data(Reddit, YT, IG, TikTok, Indeed, Google Search, Maps etc) through one platform…

📰

Wasp Starter Templates 实战指南:用 `wasp new` 一键搭建全栈应用脚手架

Wasp Starter Templates 实战指南:用 wasp new 一键搭建全栈应用脚手架 【免费下载链接】wasp The batteries-included full-stack framework for the AI era. Develop JS/TS web apps (React, Node.js, and Prisma) using declarative code that abstracts away co…

📰

edge-tts 文本转语音:免费调用微软语音合成的 3 步完整指南

edge-tts 文本转语音:免费调用微软语音合成的 3 步完整指南 【免费下载链接】edge-tts Use Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key 项目地址: https://gitcode.com/GitHub_Trendin…

📰

Flipper Zero AppManifests 完全指南:application.fam 清单格式与 fbt 构建系统深度解析

Flipper Zero AppManifests 完全指南:application.fam 清单格式与 fbt 构建系统深度解析 【免费下载链接】flipperzero-firmware Flipper Zero firmware source code 项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware Flipper Zero 固…

📰

从快速上手到三层弹性体系:OmniRoute 仓库 CLAUDE.md(巴西葡语版)技术指南深度解读

从快速上手到三层弹性体系:OmniRoute 仓库 CLAUDE.md(巴西葡语版)技术指南深度解读 【免费下载链接】OmniRoute Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, …

📰

深入剖析 ScyllaDB Commitlog 段文件格式:从文件头到碎片化条目的逐字节解析

深入剖析 ScyllaDB Commitlog 段文件格式:从文件头到碎片化条目的逐字节解析 【免费下载链接】scylladb NoSQL data store using the Seastar framework, compatible with Apache Cassandra and Amazon DynamoDB 项目地址: https://gitcode.com/GitHub_Trending/s…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬