프로그래밍/LeetCode
[LeetCode][Python3] 26. Remove Duplicates from Sorted Array
snoopybox
2018. 9. 11. 22:20
Problem :
https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/
My Solution :
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
i = 1
while i < len(nums):
if nums[i-1] == nums[i]:
del nums[i]
else:
i += 1
return len(nums)
Comment :
in-place로 풀라고 하길래 그냥 무식하게 삭제했는데, 이게 효율이 별로이려나?
확인해보니 list에서 del은 O(n)이다. 매우 비 효율적인 코드였네 ㅠㅠ
아래는 다른 방식으로 풀어본 것이다.
My Solution2 :
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:
return 0
i, j = 0, 1
while j < len(nums):
if nums[i] != nums[j]:
i += 1
nums[i] = nums[j]
j += 1
return i+1