我们可以使用双指针来解决这个问题,其中一个指针用于遍历数组,另一个指针用于指示不同元素的位置。遍历数组时,若当前遍历到的元素与不同元素的位置处元素相同,则跳过该元素;否则将该元素移动到不同元素的位置处,并将不同元素的位置指针后移。如下是示例代码:
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if not nums:
return 0
# 不同元素的位置
j = 0
for i in range(1, len(nums)):
if nums[i] != nums[j]:
j += 1
nums[j] = nums[i]
return j + 1