26. 删除排序数组中的重复项
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
解法一:
提示很明显了,答案只检测前k(去重后的元素个数)个位置,因此可以设两个指针i,j。i表示nums[0:i]
是无重复部分,初始为0。j从1开始遍历数组,遇到与i不相等的元素就令i+1,并将该元素写入i(无重复部分的末尾)
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
n = len(nums)
if n == 0: #边界条件
return 0
i = 0 #无重复部分
j = 1 #游标
for j in range(1, n):
if nums[j] != nums[i]:
i += 1 #无重复部分扩张
nums[i] = nums[j]
return i+1
最后更新于