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

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.jsqmd.com/news/240458/

相关文章:

  • Jmeter 4.0压力测试工具安装及使用方法
  • 《创业之路》-844-AI时代新的商业模式:“每个人都可以成为微型企业家,每个AI智能体都可成为一个功能型企业,平台成为创业操作系统。”欢迎来到 CaaS 时代:Company as a Servic
  • 全网最全10个AI论文写作软件,助继续教育学生轻松完成论文!
  • 智能背调平台,为企业用人决策精准护航
  • 【综合能源】计及碳捕集电厂低碳特性及需求响应的综合能源系统多时间尺度调度模型附Matlab代码
  • elementui message组件去掉文字前面的图标、设置类型、设置时长
  • 【服务器数据恢复】服务器泡水硬盘掉线,数据如何“起死回生”?
  • 深度学习计算机毕设之基于python_CNN深度学习卷积神经网络对狗注意力是否集中识别基于python_CNN机器学习卷积神经网络对狗注意力是否集中识别
  • 如何挑选适合的低代码平台?看完这篇文章就懂了
  • 基于视频孪生与空间智能深度融合的智慧城市解决方案
  • 吐血推荐!本科生AI论文软件TOP9:开题报告文献综述全搞定
  • 深度测评8个AI论文网站,本科生毕业论文必备!
  • 实时云渲染赋能电网数字孪生:技术方案与场景落地
  • LTX-2 GGUF版 - 一键生成音视频,8G显存可用 让创作更轻松 支持50系显卡 ComfyUI工作流 一键整合包
  • 深度学习毕设选题推荐:基于python_CNN深度学习卷积神经网络对狗注意力是否集中识别基于python对狗注意力是否集中识别
  • SuperMap GIS基础产品FAQ集锦(20260112)
  • 基于MATLAB的分块压缩感知程序实现与解析
  • 物联网毕业论文(毕设)2024项目选题建议
  • 【毕业设计】基于深度学习卷积神经网络对狗注意力是否集中识别基于python_CNN深度学习卷积神经网络对狗注意力是否集中识别
  • 计算机深度学习毕设实战-基于python的卷积神经网络对狗注意力是否集中识别基于python_CNN深度学习卷积神经网络对狗注意力是否集中识别
  • 小巧身躯,精准感知:走进MEMS加速度计的轻量化高性能时代
  • ChatGPT与DeepSeek从入门到精通:大语言模型最新进展、提示词高级技巧、论文写作全流程、机器学习建模、深度学习应用、数据可视化、代码自动生成与优化等
  • 48页搞定AI Agent!这本学习手册让你从小白变高手
  • 从构想到跑通:凤希AI伴侣P2P技术方案落地-2026年1月13日
  • 月亮树跨境AI工作流+采集API普通用户也能玩转AI应用
  • 低代码不是万能,但选对很关键|制造业选型经验分享
  • 2026热门员工学习系统分析|榜首实至名
  • 制造业ERP系统选型参考:高性价比方案的适配逻辑与实践方向
  • 效果图云渲染平台如何选择?
  • 基于MPC的风储调频模型Simulink实现