15 3Sum
2015-06-19 13:41
239 查看
class Solution:
# @param {integer[]} nums
# @return {integer[][]}
def threeSum(self, nums):
"O(n**2), for k-sum, time complexity is O(max{nlogn,n**(k-1)})"
nums.sort()
res,l=[],len(nums)
for i in range(l):
if i>0 and nums[i]==nums[i-1]:
continue
m,r=i+1,l-1
while m<r:
tmp=nums[i]+nums[m]+nums[r]
if tmp<0:
m+=1
elif tmp>0:
r-=1
else:
res.append([nums[i],nums[m],nums[r]])
while m<r and nums[m]==nums[m+1]: m+=1
while m<r and nums[r]==nums[r-1]: r-=1
m,r=m+1,r-1
return res
# @param {integer[]} nums
# @return {integer[][]}
def threeSum(self, nums):
"O(n**2), for k-sum, time complexity is O(max{nlogn,n**(k-1)})"
nums.sort()
res,l=[],len(nums)
for i in range(l):
if i>0 and nums[i]==nums[i-1]:
continue
m,r=i+1,l-1
while m<r:
tmp=nums[i]+nums[m]+nums[r]
if tmp<0:
m+=1
elif tmp>0:
r-=1
else:
res.append([nums[i],nums[m],nums[r]])
while m<r and nums[m]==nums[m+1]: m+=1
while m<r and nums[r]==nums[r-1]: r-=1
m,r=m+1,r-1
return res
相关文章推荐
- HDU 1007 Quoit Design
- 两数之和
- openlayers Uncaught TypeError: Cannot read property 'wrapDateLine' of null
- sqlite python脚本
- iOS使用脚本批量打渠道包
- 用户调查报告
- [IOS]从相册获取图片和视频进行上传
- C# unicode编码 中文显示
- a href=#与 a href=javascript:void(0) 的区别
- jquery 同步和异步请求
- centos redis自启动相关
- mysql grant
- 抢答器设计
- 手机安全卫士02
- aptitude与apt-get常用选项
- Storm WordCount Topology学习
- Unable to open connection to supplicant on "/data/misc/wifi/sockets/wlan0"
- jvm之xms、xmx等参数分析
- 【性能诊断】七、并发场景的性能分析(windbg案例,线程阻塞)
- 技术演绎之 [ hadoop] 内部介绍