LeetCode[ Medium | Python ] Remove Duplicates from Sorted Array II
업데이트:
링크
풀이
제목과 같이 주어진 정렬된 배열 nums
에서 중복된 요소를 제거하여 유일 값들을 남겨야하는 문제.
단 이전 문제와 다르게 2회 초과로 등장하는 요소를 삭제해야 한다.
- 이전 문제와 같이 pop연산을 통해 추출한 값의 횟수를 저장한다.
- 2회 초과라면 더이상
res
에 저장하지 않는다. - 2회 미만이라면
res
에 저장하고 그 수를 저장한다.
- 2회 초과라면 더이상
- 마찬 가지로 pop연산을 통해 얻어낸 배열
res
를 뒤집어nums
에 채워넣는다. - 길이를 반환한다.
코드
Python
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = []
dic = {}
while nums:
x = nums.pop()
if x in dic:
if dic[x] < 2:
dic[x] += 1
res.append(x)
else:
dic[x] = 1
res.append(x)
for r in res[::-1]:
nums.append(r)
return len(nums)
댓글남기기