15、三数之和(python)
题目:
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
示例:
给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:
[[-1, 0, 1],[-1, -1, 2]
]
代码(排序+双指针):
class Solution:def threeSum(self, nums):if len(nums) < 3: # 若数组长度 < 3,直接返回空return []nums = sorted(nums) # 排序re = [] # 结果变量for i in range(len(nums)): # 遍历if nums[i] > 0: # 若 nums[i] > 0,则没有数字之和为0,直接返回rereturn re if i > 0 and nums[i] == nums[i-1]: # 排除重复数组continueL = i + 1 # 左指针R = len(nums) - 1 # 右指针while L < R: # 遍历temp = nums[i] + nums[L] + nums[R] # 三数之和if temp == 0: # 若temp = 0re.append([nums[i],nums[L],nums[R]]) # 添加到结果列表中while L < R and nums[L] == nums[L+1]: # 避免左指针下一个数字重复,跳过L = L + 1while L < R and nums[R] == nums[R-1]: # 避免右指针下一个数字重复,跳过R = R - 1L = L + 1 # 左指针右移,遍历R = R - 1 # 右指针左移,遍历elif temp > 0: # 若temp > 0R = R - 1 # 则应该让三数之和小一些,故右指针左移else: L = L + 1 # 反之,应该让三数之和大一些,故左指针右移return re
15、三数之和(python)相关推荐
- Leetcode python《热题 HOT 100》15. 三数之和
Leetcode python 之 <热题 HOT 100>:https://leetcode-cn.com/problemset/hot-100/ 15. 三数之和 给定一个包含 n 个 ...
- 代码随想录算法训练营第四期第六天| 454.四数相加II、383.赎金信、15.三数之和、18. 四数之和
454.四数相加II 给你四个整数数组nums1.nums2.nums3和nums4 ,数组长度都是n ,请你计算有多少个元组(i, j, k, l)能满足: 0 <= i, j, k, l & ...
- 15. 三数之和 golang
15. 三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组. 注意:答案中不 ...
- LeetCode 15. 三数之和(3Sum)
15. 三数之和 15. 3Sum 题目描述 Given an array nums of n integers, are there elements a, b, c in nums such th ...
- [双指针|模拟] leetcode 15 三数之和
[双指针|模拟] leetcode 15 三数之和 1.题目 题目链接 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ? ...
- Suzy找到实习了吗Day 7 | 哈希表结束啦 454. 四数相加 II,383. 赎金信,15. 三数之和,18. 四数之和
454. 四数相加 II(dict hash) 题目 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...
- 代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和
代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体 ...
- 代码随想录算法训练营第07天 | LeetCode 454.四数相加2,383. 赎金信,15. 三数之和,18. 四数之和,总结
LeetCode [454. 四数相加 II] 题目:给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...
- 15 三数之和(2021-07-09)
15. 三数之和 链接:https://leetcode-cn.com/problems/3sum/ 题目描述见链接内容. 解法1:三重循环+HasH去重 想不到什么好的思路,于是就笨方法开干,用三种 ...
- 【LeetCode 算法】15.三数之和
15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j.i != k 且 j != k ,同时还满足 nums[ ...
最新文章
- ubuntu部署eclipse兼容性问题
- oracle基础琐碎总结-----Where和Having的区别与联系
- Axure下拉框级联操作
- 【云和恩墨大讲堂】从执行计划洞察ORACLE优化器的“小聪明”
- Windows 8 Platform (一) 台式机、笔记本电脑、平板电脑和智能手机
- CognitiveJ一个Java的人脸图像识别开源分析库
- AlterID.exe 报错问题
- 利用navicat 进行 mysql建表语句转oracle建表语句
- 解决Untracked Files Prevent Checkout问题
- Kata Containers用例
- Error (14566):The Fitter cannot place 1 periphery component(s) xxx (1 fractional PLL(s)).
- (纪录片)光的故事 BBC Light Fantastic (2004)
- vue和php前后端分离
- 前端开发面试问题及答案收录
- 工业交换机的内部组成是什么?
- python3将文本内容生成词云
- 使用皮皮影院搭建电影展
- 调整图像亮度之 线性拉伸 (2) 百分比截断拉伸
- VS 使用自带的.NET Reflector单步调试编译好的程序集(反编译),以及相关其他反编译程序介绍
- 用这个方法,苹果官网居然比二手市场还便宜,最近剁手的注意了
热门文章
- Julia: 关于1.0的Array的变化
- C#:重启后,AssemblyInfo中AssemblyTitle的描述内容显示正常.........
- 【精品分享】Kolla 让 OpenStack 部署更贴心
- 【路径规划】基于matlab蚁群优化遗传算法求解机器人栅格地图最短路径规划问题【含Matlab源码 1581期】
- 【细胞分割】基于matlab GUI阙值+边缘+形态学+种子点图像分割【含Matlab源码 615期】
- 【路径规划】基于matlab蚁群算法无人机巡检路径规划【含Matlab源码 138期】
- 语音通话视频通话前端_无需互联网即可进行数十亿视频通话
- 禁止跨域_新的跨域策略:使用COOP、COEP为浏览器创建更安全的环境
- java vector 实现二维数组
- oracle实际是什么意思,Oracle遇到的应用实际教程