class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
s = set()
res=0
i=0
for _ in range(len(nums)):
if nums[i] in s:
del nums[i]
else:
res+=1
s.add(nums[i])
i+=1
return res
이미 sorted 된 array 이기 때문에 이전 값과 비교하면 set을 안 써도 되어서 공간복잡도를 더 줄일 수 있겠다
in-place 로 줄여야 해서.. del 을 했을 때 길이가 줄어들어버려서 i를 따로 관리했다
'Dev > Algorithm' 카테고리의 다른 글
226. Invert Binary Tree (Easy) (0) | 2024.11.09 |
---|---|
121. Best Time to Buy and Sell Stock (Easy) (0) | 2024.11.08 |
138. Copy List with Random Pointer (Medium) (0) | 2024.11.07 |
127. Word Ladder (Hard) (0) | 2024.11.07 |
54. Spiral Matrix (Medium) (0) | 2024.11.01 |