恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

LeetCode15-三数之和

  • 首页
  • 资讯中心
  • /
  • LeetCode15-三数之和

相关资讯

FPGA 厂商开发板 Ethernet PHY/MAC 实现对比分析 2026/8/2 17:55:21
TPIC7710EVM评估板:汽车电子驻车制动电机控制开发实战指南 2026/8/2 17:55:22
AI 周报 — 2026 年第 31 周(7 月 20 日 — 7 月 26 日) 2026/8/2 17:55:22

最新资讯

消费级显卡本地部署DeepSeek:KTransformers异构推理实战指南
同规格无刷电机动力差异大?五大原因与排查方法全解析
从颠覆性创新到系统重构:应对“小龙虾冲击”的底层逻辑重塑
SQL+Python+R三工具协同:数据预处理完整实操指南
FreeRTOS+POSIX兼容层:嵌入式多线程代码复用与移植实战
IoT安全实战指南:从设备到云端的全链路加固与运营

今日推荐

Python random 模块常用函数详解:从入门到实战
Hermes接入团队协作后,我推翻了三个效率假设
免费AI大模型调教指南:打造专属网文写作助手

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

LeetCode15-三数之和

发布时间:2026/8/26 23:47:03
LeetCode15-三数之和 题目描述给定一个包含 n 个整数的数组 nums判断 nums 中是否存在三个元素 abc 使得 a b c 0 找出所有满足条件且不重复的三元组。注意答案中不可以包含重复的三元组。例如, 给定数组 nums [-1, 0, 1, 2, -1, -4]满足要求的三元组集合为[[-1, 0, 1],[-1, -1, 2]]来源力扣LeetCode链接https://leetcode-cn.com/problems/3sum著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。首先使用了暴力查找法找出所有的三数组合判断它们之和是否为0但结果会超出时间限制。class Solution: def threeSum(self, nums: List[int]) - List[List[int]]: lengthlen(nums) l1[] for i in range(length-2): for j in range (i1,length-1): for k in range(j1,length): if nums[i]nums[j]nums[k]0: l1.append([nums[i],nums[j],nums[k]]) temp_list[] for one in l1: onesorted(one) if one not in temp_list: temp_list.append(one) return temp_list后来我将nums中的正数和负数分开将0归于正数中然后三个数可能有两种情况2正1负、1正2负分别判断三数之和是否为0还有一种特殊情况nums中有超过3个0如果出现这种情况就将[0,0,0]加进去。但结果仍然超出时间限制。class Solution: def threeSum(self, nums: List[int]) - List[List[int]]: l1,l2,l[],[],[] f0 for num in nums: if num0: l1.append(num) else: l2.append(num) l11len(l1) l22len(l2) for m in l1: if m0: ff1 if f3: l.append([0,0,0]) for i in range(l11): for j in range(l22-1): for k in range(j1,l22): if l1[i]l2[j]l2[k]0: l.append([l1[i],l2[j],l2[k]]) for i in range(l22): for j in range(l11-1): for k in range(j1,l11): if l2[i]l1[j]l1[k]0: l.append([l2[i],l1[j],l1[k]]) temp_list[] for one in l: onesorted(one) if one not in temp_list: temp_list.append(one) return temp_list最后借鉴了别人的做法采用排序双指针的方法,这种方法可排除许多无效解从而降低时间复杂度。class Solution: def threeSum(self, nums:List[int]) - List[List[int]]: nums.sort() l, k [], 0 for k in range(len(nums) - 2): if nums[k] 0: break if k 0 and nums[k] nums[k - 1]: continue i, j k 1, len(nums) - 1 while i j: s nums[k] nums[i] nums[j] if s 0: i 1 while i j and nums[i] nums[i - 1]: i 1 elif s 0: j - 1 while i j and nums[j] nums[j 1]: j - 1 else: l.append([nums[k], nums[i], nums[j]]) i 1 j - 1 while i j and nums[i] nums[i - 1]: i 1 while i j and nums[j] nums[j 1]: j - 1 return l

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号