Given a sorted array *nums*, remove the duplicates **in-place** such that each element appear only *once* and return the new length.

Do not allocate extra space for another array, you must do this by **modifying the input array in-place** with O(1) extra memory.

**Example 1:**

Givennums=[1,1,2], Your function should return length =, with the first two elements of`2`

being`nums`

and`1`

respectively. It doesn't matter what you leave beyond the returned length.`2`

**Example 2:**

Givennums=[0,0,1,1,1,2,2,3,3,4], Your function should return length =, with the first five elements of`5`

being modified to`nums`

,`0`

,`1`

,`2`

, and`3`

respectively. It doesn't matter what values are set beyond the returned length.`4`

class Solution: def removeDuplicates(self, nums: List[int]): if not nums: return 0 newTail = 0 for i in range(1, len(nums)): if nums[i] != nums[newTail]: newTail += 1 nums[newTail] = nums[i] return newTail + 1