Loading...

[LeetCode] 15. 3sum (python, javascript, two pointer)

제일 왼쪽은 고정해놓고 그 오른쪽만 투포인터로 계산한다. O(n^2) 정렬해놓고 합이 작으면 더 큰 곳으로 이동하고 크면 오른쪽 포인터를 왼쪽으로 이동시킨다 같은 원소가 있는 부분은 넘어가면서 구한다 1. python class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: nums.sort() res=[] for i in range(len(nums)-2): if i>0 and nums[i]==nums[i-1]: continue # 중복인 경우 넘어간다 left,right=i+1,len(nums)-1 while left

[LeetCode] 42. trapping rain water (python, javascript, two pointer)

각 왼쪽, 오른쪽 끝에서 시작한다. 왼쪽의 벽이 더 높으면 오른쪽에서 안쪽으로 이동하고 (더 큰 벽을 찾아서) 오른쪽 벽이 더 높다면 왼쪽에서 안쪽으로 이동한다. 만약 현재 왼쪽에서 안쪽으로 이동하는데 지금까지 왼쪽에서 만난 벽 중 가장 높은 위치 lh 보다 작은 곳이라면 물이 고이므로 lh-height[l] 이런 식으로 더해준다. 1. python class Solution: def trap(self, height: List[int]) -> int: if not height: return 0 left,right=0,len(height)-1 l_max,r_max=height[left],height[right] amount=0 while left