python-leetcode-三数之和

devtools/2025/1/11 23:42:01/

15. 三数之和 - 力扣(LeetCode)

class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:nums.sort()  # 排序n = len(nums)res = []for i in range(n):# 剪枝:如果当前数 > 0,三数之和不可能为 0if nums[i] > 0:break# 去重:跳过重复元素if i > 0 and nums[i] == nums[i - 1]:continue# 双指针left, right = i + 1, n - 1while left < right:total = nums[i] + nums[left] + nums[right]if total == 0:res.append([nums[i], nums[left], nums[right]])# 去重:跳过相同的 left 和 rightwhile left < right and nums[left] == nums[left + 1]:left += 1while left < right and nums[right] == nums[right - 1]:right -= 1left += 1right -= 1elif total < 0:left += 1  # 和偏小,左指针右移else:right -= 1  # 和偏大,右指针左移return res   


http://www.ppmy.cn/devtools/149722.html

相关文章

C#异常处理精髓:throw机制深度剖析

在C#编程中&#xff0c;异常处理是确保程序稳健性和可靠性的关键环节。其中&#xff0c;throw语句扮演着至关重要的角色&#xff0c;它用于显式地抛出异常&#xff0c;使程序能够在遇到错误条件时采取适当的措施。本文将深入探讨C#中的throw机制&#xff0c;通过实际示例和详细…

javascript-闭包

REF:https://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

C++—14、C++ 中的指针最基础的原理

这里的指针是指原始指针&#xff0c;并非智能指针。计算机跟内存打交道&#xff0c;内存是计算机的一切&#xff0c;编程中最重要的东西可能就是内存。当你编写一个应用程序并启动它时&#xff0c;整个程序被载入内存&#xff0c;在你写的代码中&#xff0c;所有指令告诉计算机…

在 Ubuntu 上安装和配置 Redis

在 Ubuntu 上安装和配置 Redis&#xff0c;并使用发布-订阅&#xff08;Pub/Sub&#xff09;功能&#xff0c;可以按照以下步骤进行&#xff1a; 一、安装 Redis 1. 更新包列表 首先&#xff0c;更新本地的包列表以确保获取到最新的软件包信息&#xff1a; sudo apt update…

【漏洞分析】DDOS攻防分析

0x00 UDP攻击实例 2013年12月30日&#xff0c;网游界发生了一起“追杀”事件。事件的主角是PhantmL0rd&#xff08;这名字一看就是个玩家&#xff09;和黑客组织DERP Trolling。 PhantomL0rd&#xff0c;人称“鬼王”&#xff0c;本名James Varga&#xff0c;某专业游戏小组的…

城市生命线安全综合监管平台

【落地产品&#xff0c;有需要可留言联系&#xff0c;支持项目合作或源码合作】 一、建设背景 以关于城市安全的重要论述为建设纲要&#xff0c;聚焦城市安全重点领域&#xff0c;围绕燃气爆炸、城市内涝、地下管线交互风险、第三方施工破坏、供水爆管、桥梁坍塌、道路塌陷七…

学习、应用AI时,工作流与智能体的侧重选择

近日有朋友留言&#xff1a;“学习、应用AI时&#xff0c;工作流与智能体的侧重选择&#xff1f;” 其实在学习、应用AI时&#xff0c;选择工作流还是智能体主要取决于具体的应用场景和需求。以下是两者的一些特点和适用场景&#xff1a; 工作流的特点和适用场景 - 特点&…

ip属地出省会变吗?怎么出省让ip属地不变

在数字化时代&#xff0c;IP属地作为网络身份的一个重要标识&#xff0c;不仅影响着我们的网络体验&#xff0c;还与网络安全、隐私保护等方面息息相关。当我们跨省移动时&#xff0c;是否会遇到IP属地变化的问题&#xff1f;如果希望保持IP属地不变&#xff0c;又该如何操作呢…