박상길, 『파이썬 알고리즘 인터뷰』를 정리한 내용입니다.
https://leetcode.com/problems/3sum/
3Sum - LeetCode
Can you solve this real interview question? 3Sum - Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0. Notice that the solution set must not contain du
leetcode.com
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
answer = []
nums.sort()
for i in range(len(nums) - 2):
if nums[i] > 0:
break
if i > 0 and nums[i] == nums[i-1]:
continue
left, right = i+1, len(nums)-1
while left < right:
three_sum = nums[i] + nums[left] + nums[right]
if three_sum == 0:
answer.append([nums[i], nums[left], nums[right]])
while left < right and nums[left] == nums[left+1]:
left += 1
while left < right and nums[right] == nums[right - 1]:
right -= 1
left += 1
right -= 1
elif three_sum < 0:
left += 1
else:
right -= 1
return answer
[LeetCode] Remove Duplicate Letters | stack | 파이썬 알고리즘 인터뷰, 정답, 소스코드 (0) | 2023.06.15 |
---|---|
[프로그래머스] 148653. 마법의 엘리베이터| deque | 파이썬, 소스코드, 정답 (0) | 2023.06.14 |
[프로그래머스] 161988. 연속 펄스 부분 수열의 합| DP | 파이썬, 소스코드, 정답 (1) | 2023.06.04 |
[LeetCode] Longest Palindrome Substring | 투포인터 | 파이썬 알고리즘 인터뷰, 정답, 소스코드 (1) | 2023.06.03 |
[파이썬 알고리즘 인터뷰] 가장 흔한 단어 | 정규표현식 re.sub(), Counter (0) | 2023.05.31 |