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
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
相关文章推荐
- LeetCode题解-16-3Sum Closest
- LeetCode(16)--3Sum Closest
- Leetcode--16. 3Sum Closest
- leetcode16 3Sum Closest
- LeetCode 16 3Sum Closest
- 【leetcode-16】3Sum Closest(java)
- LeetCode 16: 3Sum Closest
- LeetCode --- 16. 3Sum Closest
- [LeetCode] 16. 3Sum Closest
- LeetCode 16 - 3Sum Closest
- LeetCode(16)3Sum Closest
- [Leetcode] 16. 3Sum Closest
- LeetCode (16)3Sum Closest
- [leetcode 15] 3sum && [leetcode 16] 3sum closest
- Leetcode 16[medium]--3Sum Closest
- [LeetCode] 16. 3Sum Closest
- [LeetCode 16] 3Sum Closest
- LeetCode 16 3Sum Closest
- LeetCode[16]: 3Sum Closest
- leetcode 16 3Sum Closest