刷题的日常[Leetcode]——16)3 Sum Closet

    xiaoxiao2021-03-25  137

    题目描述:

    从一个list里找出三个数,和与target最接近

    注意:

    和15题一样,不过题目规定了有唯一解

    重点是返回值是和,判断条件应该是和与target的差值

    class Solution(object): def threeSumClosest(self, nums, target): nums.sort() i=0 smin=2147483647 while i<len(nums)-2: j=i+1;k=len(nums)-1 while j<k: s=nums[i]+nums[j]+nums[k] #print i,j,k,abs(s-target),s #print i,j,k,s-target if abs(s-target)<abs(smin-target): smin=s #print smin if s==target: return s elif s<target: t=j while nums[t]==nums[j] and t<k: t+=1 j=t elif s>target: t=k while nums[t]==nums[k] and t>j: t=t-1 k=t i+=1 return smin if __name__=="__main__": sol=Solution() nums=[1,1,1,0] target=100 print sol.threeSumClosest(nums,target)

    转载请注明原文地址: https://ju.6miu.com/read-14628.html

    最新回复(0)