## Description

Given a sorted array `nums`

, remove the duplicates *in-place* such that each element appears only once, and return the new length.

Do not allocate extra space for another array.

```
# example
nums = [1, 2, 2, 3, 6, 7, 7]
unq_nums_len = remove_duplicates(nums)
print(unq_nums_len, nums, sep='/n')
>>> 5
[1, 2, 3, 6, 7]
```

Further Reading: *How are Lists Implemented in Python?*

## Solution

```
def remove_duplicates(nums: List[int]) -> int:
if len(nums)==0:
return 0
i = 0
for j in range(len(nums)):
if nums[j] != nums[i]:
# copy the new value to the pos in front of i
# and increment both
i += 1
nums[i] = nums[j]
# else i stays the same, increment j
return i + 1
```