completed and added faster runtime solution
This commit is contained in:
parent
aa07e7191a
commit
f2ae3fd549
@ -3,37 +3,21 @@ def removeDuplicates(nums):
|
|||||||
:type nums: List[int]
|
:type nums: List[int]
|
||||||
:rtype: int
|
:rtype: int
|
||||||
"""
|
"""
|
||||||
count = 0
|
# Use a two-pointer approach
|
||||||
previousValue = None
|
unique_index = 0
|
||||||
for x in nums:
|
|
||||||
if previousValue is not None:
|
|
||||||
if x == previousValue:
|
|
||||||
del nums[count]
|
|
||||||
previousValue = x
|
|
||||||
count += 1
|
|
||||||
print(nums)
|
|
||||||
|
|
||||||
duplicates = 1
|
# Utilize a set for faster lookup
|
||||||
|
unique_set = set()
|
||||||
|
|
||||||
while duplicates != 0:
|
for num in nums:
|
||||||
if duplicates == len(nums):
|
if num not in unique_set:
|
||||||
break
|
nums[unique_index] = num
|
||||||
if nums[duplicates] == nums[duplicates-1]:
|
print(unique_set)
|
||||||
del nums[duplicates-1]
|
unique_index += 1
|
||||||
print(nums)
|
unique_set.add(num)
|
||||||
else:
|
return len(unique_set)
|
||||||
duplicates += 1
|
|
||||||
|
|
||||||
# for i in range(len(nums)):
|
# Faster runtime
|
||||||
# # print(nums)
|
nums[:] = sorted(set(nums))
|
||||||
# if i+1 == len(nums):
|
return len(nums)
|
||||||
# break
|
|
||||||
# if nums[i] != nums[i+1]:
|
|
||||||
# count += 1
|
|
||||||
# else:
|
|
||||||
# del nums[i]
|
|
||||||
# i -= 1
|
|
||||||
# print(nums)
|
|
||||||
# print(nums)
|
|
||||||
# print(count)
|
|
||||||
removeDuplicates([0,0,1,1,1,2,2,3,3,4])
|
removeDuplicates([0,0,1,1,1,2,2,3,3,4])
|
||||||
Loading…
Reference in New Issue
Block a user