Skip to content

Commit d1f18be

Browse files
committed
update sorted array duplicate removal
1 parent 9c35c38 commit d1f18be

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

elements-of-programming-interviews/python/sorted_array_remove_dups.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
# Returns the number of valid entries after deletion.
9-
def delete_duplicates(A: List[int]) -> int:
9+
def delete_duplicates_first(A: List[int]) -> int:
1010
i = 1
1111
target = 1
1212
while i < len(A):
@@ -17,6 +17,19 @@ def delete_duplicates(A: List[int]) -> int:
1717
return target
1818

1919

20+
def delete_duplicates(A: List[int]) -> int:
21+
if not A:
22+
return 0
23+
unique = 0
24+
curr = 1
25+
while (curr < len(A)):
26+
if A[curr] != A[unique]:
27+
unique += 1
28+
A[unique] = A[curr]
29+
curr += 1
30+
return unique + 1
31+
32+
2033
@enable_executor_hook
2134
def delete_duplicates_wrapper(executor, A):
2235
idx = executor.run(functools.partial(delete_duplicates, A))

0 commit comments

Comments
 (0)