반응형
leetcode.com/problems/3sum-closest/
3Sum Closest - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
diff = float('inf')
n = len(nums)
nums.sort()
for i in range(n-2) :
l, r = i+1, n-1
while l < r :
curr = nums[i] + nums[l] + nums[r]
if curr < target :
l += 1
else :
r -= 1
if abs(target-curr) < abs(diff) :
diff = target-curr
if diff == 0 :
break
return target-diff
정리 :
처음 문제를 접했을때 브루트 포스로 푸는 방법 밖에 생각이 나지 않았음.
브루트 포스로 풀면 시간복잡도가 n의 세제곱이 되는데 정렬을 함으로써 시간복잡도를 쉽게 줄일수 있었음.
Array 관련 문제를 풀경우는 sort를 항상 염두해둘 것.
반응형
'0 > leetcode' 카테고리의 다른 글
207. Course Schedule (0) | 2020.09.08 |
---|---|
41. First Missing Positive (0) | 2020.09.08 |
988. Smallest String Starting From Leaf (0) | 2020.09.08 |
835. Image Overlap (0) | 2020.09.07 |
1305. All elements in two binary search trees (0) | 2020.09.06 |