啊这道题还是挺简单的,就是双指针法,而且数组还是排序过的,只要一个右指针一直往右边走,比较其所指的数和左指针指的数是否相同,如果相同,那么 右指针向右移动一位,左指针则不动。当遇见右指针和左指针指的数相同时,左指针也向右移动一格,并将右指针所指的数记录在新的左指针所指的位置,以此\n 类推直至右指针走到数组末尾。返回左指针的位置加一即可。
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if len(nums) == 1:
return 1
i, j = 0, 1
while j < len(nums):
if nums[i] == nums[j]:
j += 1
else:
i += 1
nums[i] = nums[j]
j += 1
return i + 1
PREVIOUSlc167.两数之和2-输入有序数组
NEXTlc076.最小覆盖子串