80. Remove Duplicates from Sorted Array II
https://youtu.be/ycAq8iqh0TI?si=xnT3SvO1n9jkMNVq
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
k = 0 # 중복되지 않은 요소를 저장할 위치를 추적하는 포인터
prev = nums[0] - 1 # 이전에 저장된 값을 추적하기 위한 변수, nums[0]보다 작은 값으로 초기화
cnt = 0 # 현재 숫자가 몇 번 등장했는지 추적
# 배열을 순회하며 중복을 제거
for i in range(len(nums)):
if nums[i] > prev: # 새로운 값이 나왔을 때
nums[k] = nums[i] # 새로운 값을 nums[k] 위치에 저장
k += 1 # 다음 저장 위치로 이동
cnt = 1 # 새로운 값의 등장 횟수를 1로 초기화
prev = nums[i] # 현재 값을 이전 값으로 업데이트
elif nums[i] == prev and cnt < 2: # 동일한 값이지만 최대 2번까지 허용
nums[k] = nums[i] # 값을 nums[k] 위치에 저장
k += 1 # 다음 저장 위치로 이동
cnt += 1 # 동일한 값의 등장 횟수 증가
else: # 동일한 값이 2번 이상 등장한 경우
cnt += 1 # 등장 횟수만 증가하고 저장은 하지 않음
return k # 중복되지 않은 요소의 개수 반환
'LeetCode > Top Interview 150' 카테고리의 다른 글
189. Rotate Array (0) | 2024.11.26 |
---|---|
169. Majority Element (0) | 2024.11.26 |
26. Remove Duplicates from Sorted Array (0) | 2024.11.25 |
27. Remove Element (0) | 2024.11.25 |
88. Merge Sorted Array (0) | 2024.11.25 |