15. 3Sum
来源:互联网 发布:网络贷款理财平台 编辑:程序博客网 时间:2024/05/18 04:04
题意:给定一个包含n个数的数组S,找出所有S中符合a+b+c=0的不同的三元组(a,b,c),注意解中不包含相同的三元组。
For example, given array S = [-1, 0, 1, 2, -1, -4],
A solution set is:
[
[-1, 0, 1],
[-1, -1, 2]
]
思路:既然是数组的题,很显然想到用三个指针分别指向这三个数,首先当然先要sort,当然这题有一个问题是如何处理那些相同的三元组,其实方法有两个,一个是直接用循环跳过那些重复的数字,还有一种是处理时不管,最后return的时候求set。
class Solution(object): def threeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ nums = sorted(nums) answer = [] for i in xrange(len(nums)-2): if i > 0 and nums[i] == nums[i-1]: continue j, k = i+1, len(nums)-1 while j < k: if nums[i]+nums[j]+nums[k] > 0: k -= 1 elif nums[i]+nums[j]+nums[k] < 0: j += 1 else: answer.append([nums[i], nums[j], nums[k]]) j, k = j+1, k-1 while j < k and nums[j] == nums[j - 1]: j += 1 while j < k and nums[k] == nums[k + 1]: k -= 1 return answer
0 0
- 15. 3Sum && 16 sum closet && 18 4sum
- 15. 3Sum 和 18. 4Sum
- 1. Two Sum&15. 3Sum
- LeetCode 15. 3Sum
- LeetCode --- 15. 3Sum
- [Leetcode] 15. 3Sum
- 【LeetCode】15. 3Sum
- 15. 3Sum
- 【leetcode】15. 3sum
- 【leetcode】15. 3Sum
- 15. 3Sum
- [leetcode] 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- 15. 3Sum
- leetcode 15. 3Sum
- Sql Server级联操作
- 创建FTP遇到的问题,不定期更新
- 按值传递还是按引用传递详细解说
- 字符相似度算法及应用
- caffe 画出train与loss曲线
- 15. 3Sum
- 无线传感器网络路由协议
- Netgear R7000/R6400路由器远程漏洞等
- Javaweb 获取物理路径与网络路径
- Shell变量、数据重定向和管道
- Map中的keySet方法
- robotframework一些常用快捷方式
- C#读写xml文件的常用方法
- NSNumber 转float或double小数不正确误差问题