diff --git a/Top150Interview/26RemoveDuplicatesFromSortedArray.py b/Top150Interview/26RemoveDuplicatesFromSortedArray.py index 0b7546a..ab49faf 100644 --- a/Top150Interview/26RemoveDuplicatesFromSortedArray.py +++ b/Top150Interview/26RemoveDuplicatesFromSortedArray.py @@ -3,37 +3,21 @@ def removeDuplicates(nums): :type nums: List[int] :rtype: int """ - count = 0 - previousValue = None - for x in nums: - if previousValue is not None: - if x == previousValue: - del nums[count] - previousValue = x - count += 1 - print(nums) + # Use a two-pointer approach + unique_index = 0 + + # Utilize a set for faster lookup + unique_set = set() + + for num in nums: + if num not in unique_set: + nums[unique_index] = num + print(unique_set) + unique_index += 1 + unique_set.add(num) + return len(unique_set) - duplicates = 1 - - while duplicates != 0: - if duplicates == len(nums): - break - if nums[duplicates] == nums[duplicates-1]: - del nums[duplicates-1] - print(nums) - else: - duplicates += 1 - - # for i in range(len(nums)): - # # print(nums) - # if i+1 == len(nums): - # break - # if nums[i] != nums[i+1]: - # count += 1 - # else: - # del nums[i] - # i -= 1 - # print(nums) - # print(nums) - # print(count) + # Faster runtime + nums[:] = sorted(set(nums)) + return len(nums) removeDuplicates([0,0,1,1,1,2,2,3,3,4]) \ No newline at end of file