LeetCode 26 _ 删除排序数组中的重复项

1. 题目描述

LeetCode 26 _ 删除排序数组中的重复项

2. 代码

 1 class Solution:
 2     def removeDuplicates(self, nums: 'List[int]') -> int:
 3         prevalue = 0
 4         n = len(nums)
 5         count = 0
 6         i,j = 0,0
 7         while i < n:
 8             if i == 0:#第一个元素
 9                 prevalue = nums[i]
10                 count += 1
11                 i += 1
12                 j += 1
13             else:#非第一个元素
14                 cur = nums[i]
15                 if cur == prevalue:#连续相同值
16                     i += 1#指针后移
17                 else:#非相同值
18                     nums[j] = cur#给数组重新赋值
19                     count += 1#不同元素的数量+1
20                     prevalue = cur#更新prevalue
21                     i += 1#读取下标+1
22                     j += 1#写入下标+1
23         return count

思路: 双指针法,定义了2个指针,读取 i 和 写入 j 。