LeetCode 솔루션 분류
[10/8] 16. 3Sum Closest
본문
16. 3Sum Closest
Medium
7071385Add to ListShareGiven an integer array nums
of length n
and an integer target
, find three integers in nums
such that the sum is closest to target
.
Return the sum of the three integers.
You may assume that each input would have exactly one solution.
Example 1:
Input: nums = [-1,2,1,-4], target = 1 Output: 2 Explanation: The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
Example 2:
Input: nums = [0,0,0], target = 1 Output: 0 Explanation: The sum that is closest to the target is 0. (0 + 0 + 0 = 0).
Constraints:
3 <= nums.length <= 1000
-1000 <= nums[i] <= 1000
-104 <= target <= 104
Accepted
894,101
Submissions
1,940,414
관련자료
-
링크
댓글 1
학부유학생님의 댓글
- 익명
- 작성일
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
nums.sort()
diff = float('inf')
answer = 0
for i in range(len(nums)-2):
l, r = i+1, len(nums)-1
if i>0 and nums[i] == nums[i-1]: continue
while l<r:
threeSum = nums[i] + nums[l] + nums[r]
if abs(target-threeSum)<diff:
answer = threeSum
diff = abs(target-threeSum)
if threeSum < target:
l += 1
else:
r -= 1
return answer