LeetCode算法刷题——双指针

双指针算法定义

双指针算法是一种在数组、链表或其他线性数据结构上使用两个“指针”(通常是索引或引用)协同遍历,以高效解决问题的算法技巧。这里的“指针”不一定是指 C/C++ 中的内存指针,更多是指数组下标或迭代器。

通过维护两个指针(如左指针 left 和右指针 right),根据问题的性质动态地移动它们,从而避免使用嵌套循环,将时间复杂度从 O(n²)优化到O(n)。

常见类型

普通双指针:一般情况下两个指针往同一个方向移动。

对撞双指针:两个指针面对面移动。

快慢双指针:一快一慢同向移动。

LeetCode练习题—[141]环形链表

本题为简单题,目的是为了考察对于双指针算法的运用,本题运用的方法为快慢双指针

注:以下解法仅代表个人观点,并非唯一解法,仅供记录与参考!

题目如下所示:

代码解析(python):

# # @lc app=leetcode.cn id=141 lang=python3 # # [141] 环形链表 # # @lc code=start # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def hasCycle(self, head: Optional[ListNode]) -> bool: # 如果链表为空或只有一个节点,直接返回False if head is None: return False # 使用快慢指针法,初始都指向头节点 slow = head fast = head # 当快指针和快指针的下一个节点都不为空时继续循环 while fast is not None and fast.next is not None: # 慢指针每次前进一步 slow = slow.next # 快指针每次前进两步 fast = fast.next.next # 如果快慢指针相遇,说明存在环 if slow == fast: return True # 如果循环结束仍未相遇,说明没有环 return False

LeetCode练习题—[881]救生艇

本题为中等题,目的是为了考察对于双指针算法的运用,本题运用的方法为对撞双指针

注:以下解法仅代表个人观点,并非唯一解法,仅供记录与参考!

题目如下所示:

代码解析(python):

# # @lc app=leetcode.cn id=881 lang=python3 # # [881] 救生艇 # # @lc code=start class Solution: def numRescueBoats(self, people: List[int], limit: int) -> int: # 如果人员列表为空或为None,直接返回0 if people is None or len(people) == 0: return 0 # 将人员按体重升序排序 people.sort() # 初始化双指针:i指向最轻的人,j指向最重的人 i = 0 j = len(people) - 1 res = 0 while i <= j: # 当还有人员需要上船时循环 if people[i] + people[j] <= limit: # 如果最轻的人和最重的人可以同乘一艘船 i += 1 # 最轻的人上船 j -= 1 # 最重的人总是上船 res += 1 # 使用了一艘船 return res

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1155567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《创业之路》-844-AI时代新的商业模式:“每个人都可以成为微型企业家,每个AI智能体都可成为一个功能型企业,平台成为创业操作系统。”欢迎来到 CaaS 时代:Company as a Servic

新兴商业模式&#xff1a;让每个平台上的个体拥有原有企业价值创造的系统与能力&#xff01;&#xff01;&#xff01;每个人都可以借助AI成为创业者&#xff0c;每个人都可以利用AI成为企业家&#xff0c;每个人都可以借助平台联合创业&#xff01;&#xff01;这就是未来的新…

Jmeter 4.0压力测试工具安装及使用方法

一、Jmeter下载 1.网盘(官网下载贼慢)&#xff1a;https://pan.xunlei.com/s/VO5ucfHW9SkAXN8Ns-a5oxoQA1?pwdy4aw# 2.选择进行下载&#xff0c;下载下来为一个压缩包&#xff0c;解压即可。 3.我下载的是jmeter4.0版本&#xff0c;对应jdk1.8。然后就进行解压。 个人认为要…

全网最全10个AI论文写作软件,助继续教育学生轻松完成论文!

全网最全10个AI论文写作软件&#xff0c;助继续教育学生轻松完成论文&#xff01; AI 工具如何助力继续教育学生高效完成论文 在当今快速发展的学术环境中&#xff0c;继续教育学生面临着日益繁重的论文写作任务。传统写作方式不仅耗时费力&#xff0c;还容易因重复率过高而影响…

elementui message组件去掉文字前面的图标、设置类型、设置时长

https://blog.csdn.net/DarlingYL/article/details/125847733?fromshareblogdetail&sharetypeblogdetail&sharerId125847733&sharereferPC&sharesourcem0_49126700&sharefromfrom_link 这个大神解决了

【综合能源】计及碳捕集电厂低碳特性及需求响应的综合能源系统多时间尺度调度模型附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1…

深度学习计算机毕设之基于python_CNN深度学习卷积神经网络对狗注意力是否集中识别基于python_CNN机器学习卷积神经网络对狗注意力是否集中识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

智能背调平台,为企业用人决策精准护航

人才招聘中的信息不对称&#xff0c;是企业面临的普遍痛点。一份精心修饰的简历&#xff0c;可能隐藏着潜在的风险。如何高效、合规地核实候选人背景&#xff0c;成为企业人才管理的关键挑战。背调平台的出现&#xff0c;正为企业提供标准化、智能化的专业解决方案。江湖背调&a…

基于粒子群算法的永磁同步电机多参数辨识Simulink实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1…

AI蒸馏技术:让AI更智能、更高效

在人工智能&#xff08;AI&#xff09;的世界里&#xff0c;随着深度学习技术的进步&#xff0c;我们见证了AI模型变得越来越强大。与此同时&#xff0c;AI模型也变得越来越庞大和复杂。它们需要大量的计算资源和存储空间&#xff0c;这使得AI的应用变得更加昂贵且难以部署&…

【服务器数据恢复】服务器泡水硬盘掉线,数据如何“起死回生”?

服务器存储数据恢复环境&#xff1a; 某品牌服务器存储多台存储阵列柜&#xff0c;总计近100块硬盘&#xff0c;划分了20组lun。服务器存储故障&#xff1a; 机房天花板渗水导致服务器存储设备受潮&#xff0c;服务器存储内有8块硬盘掉线。 北亚企安数据恢复中心的服务器数据恢…

如何挑选适合的低代码平台?看完这篇文章就懂了

1. 斑斑低代码斑斑低代码在免费政策上表现突出&#xff0c;提供完全无限制的使用权限&#xff0c;包括用户数量、功能模块等均不设限制。其私有化部署选项让企业可以将系统部署在自己的服务器环境&#xff0c;为数据安全提供了可靠保障。平台采用清晰易懂的操作界面&#xff0c…

深度学习毕设项目:基于python_CNN机器学习卷积神经网络对狗注意力是否集中识别基于python_CNN深度学习卷积神经网络对狗注意力是否集中识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

吐血推荐!本科生AI论文软件TOP9:开题报告文献综述全搞定

吐血推荐&#xff01;本科生AI论文软件TOP9&#xff1a;开题报告文献综述全搞定 2026年本科生AI论文写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 在当前高校教育不断升级的背景下&#xff0c;本科生的学术写作任务日益繁重&#xff0c;从开题报告到文献综述&#xf…

基于视频孪生与空间智能深度融合的智慧城市解决方案

在《中华人民共和国国民经济和社会发展第十四个五年规划和 2035 年远景目标纲要》中明确提出&#xff0c;要以数字化助推城乡发展和治理模式创新&#xff0c;全面提高城乡运行效率与宜居度。具体而言&#xff0c;需分级分类推进新型智慧城市建设&#xff0c;将物联网感知设施、…

超细整理,python自动化测试面试题汇总(附答案)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题&#xff1…

【课程设计/毕业设计】基于python_CNN深度学习卷积神经网络对狗注意力是否集中识别基于深度学习卷积神经网络对狗注意力是否集中识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

什么是 AI Agent?让人工智能“动起来”的关键技术

在过去几年里&#xff0c;人工智能&#xff08;AI&#xff09;让我们看到了它惊人的能力。无论是ChatGPT聊天、Midjourney画图&#xff0c;还是AI下围棋、写代码&#xff0c;它们的表现都令人叹为观止。但这些AI大多还是“静态”的——你问它问题&#xff0c;它答&#xff1b;你…

深度测评8个AI论文网站,本科生毕业论文必备!

深度测评8个AI论文网站&#xff0c;本科生毕业论文必备&#xff01; AI 工具如何助力论文写作&#xff0c;你真的了解吗&#xff1f; 在当前的学术环境中&#xff0c;AI 工具已经成为许多学生和研究者不可或缺的助手。特别是在撰写毕业论文时&#xff0c;如何高效地完成初稿、修…

账号多、消息杂?小红书聚合系统,帮你理清所有运营琐事

小红书多号运营的痛&#xff0c;谁懂啊&#xff01;账号切换到怀疑人生&#xff0c;A号刚看完数据&#xff0c;B号的私信又堆了一堆&#xff1b;评论、消息散在各个账号&#xff0c;稍不留意就漏回&#xff1b;为了赶黄金发布时间&#xff0c;每天定N个闹钟&#xff0c;连吃饭都…

实时云渲染赋能电网数字孪生:技术方案与场景落地

一、数字孪生在智慧电网中的价值与现存瓶颈&#xff08;一&#xff09;核心优势数字孪生技术贯穿智慧电网发电、输电、配电、用电四大核心环节&#xff0c;为电网管理提供多维度支撑&#xff1a;基础支撑层面&#xff1a;融合 GIS&#xff08;地理信息系统&#xff09;、BIM&am…