タイトル説明
n個の整数と目標NUMSターゲットを含むアレイを考えます。NUMSは三つの整数を特定し、そのような彼らの最も近いことをターゲットにしています。3つの数字とリターン。各グループは唯一の答えのみ入力があることを前提としています。
例えば、配列NUMS = [-1,2,1、-4]が与えられ、かつ= 1.標的
最も近いターゲットとは3であり、数2(-1 = 1 + 2 + 2)。
Pythonコード
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
nums.sort()
n = len(nums)
best_res = float('inf')
for i in range(n):
if(i>0 and nums[i]==nums[i-1]):
continue
L = i + 1
R = n - 1
while(L<R):
result = nums[i]+nums[L]+nums[R]
if result-target == 0:
return result
if abs(result-target) < abs(best_res-target):
best_res = result
if result-target>0:
R -=1
else:
L +=1
return best_res