leetcode 騰訊 最接近的三數之和

2021-09-26 20:43:57 字數 1357 閱讀 9242

原題:

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。

例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.

與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).

在真實的面試中遇到過這道題?

分析:先將列表排序,將target插入列表,並在其左右定義left與right指標,遍歷一次求得最近的三數之和

**:

def threesumclosest(self, nums: list, target: int) -> int:

nums.sort()

i = len(nums)

sum = 0

s = 0

if target<=nums[0]:

return (nums[0]+nums[1]+nums[2])

if target>=nums[i-1]:

return (nums[i-1]+nums[i-2]+nums[i-3])

while s=target:

break

s = s+1

nums.insert(s,target)

left = s-1

right= s+1

r = 0

while (left>=0)|(rightld = target-nums[left]

rd = nums[right]-target

if ld<=rd:

sum = sum+nums[left]

left = left-1

r=r+1

else:

sum = sum+nums[right]

right = right+1

r = r+1

if r==3:

break

if (left==-1):

while r<3:

sum = sum+nums[right]

right =right+1

r = r+1

break

if (right==i+1):

while r<3:

sum = sum+nums[left]

left = left-1

r=r+1

break

return sum

self = 0

nums=[-1,2,1,-4]

target = 1

print(threesumclosest(self,nums,target))

騰訊 最接近的三數之和

給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 參考...

Leetcode 最接近的三數之和

給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...

LeetCode 最接近的三數之和

給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 cl...