您的位置:首页 > 其它

LeetCode-16-3Sum-Closest 贪心

2017-09-06 15:33 375 查看
Similar to the last problem

class Solution(object):
def threeSumClosest(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
Len=nums.__len__()
nums.sort()
bigDif=0x7fffffff
ans=0
for i in range(0,Len-2):

if i>=1 and nums[i]==nums[i-1]:
continue
L=i+1
R=Len-1
while(L<R):
while L<R and (nums[L]+nums[R]+nums[i]<=target):
dif=abs(nums[L]+nums[R]+nums[i]-target)
if dif<bigDif:
ans=nums[L]+nums[R]+nums[i]
if abs==0:
return ans
bigDif=dif
L+=1
while L<R and (nums[L-1]==nums[L]):L+=1
while L<R and (nums[L]+nums[R]+nums[i]>=target):
dif=abs(nums[L]+nums[R]+nums[i]-target)
if dif<bigDif:
ans=nums[L]+nums[R]+nums[i]
if abs==0:
return ans
bigDif=dif
R-=1
while L<R and (nums[R+1]==nums[R]):R-=1

return ans
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: