删除数组中的重复元素
leetcode——删除数组中的重复元素
输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。
不需要考虑数组中超出新长度后面的元素。
双指针
我们可以想成一个指针一直往下遍历,另一个指针可以准确记录位置`
def removeDuplicates2(self, nums) -> int:
n = len(nums)
j = 0
for index in range(n):
#j是无重复的位置,只要发现不重复的,就往前走,J的位置记得都是只有一个元素的位置
if nums[index] != nums[j]:
j += 1#只有不等于的时候,我们的这个j才会增长,后面的那,其实都是和J在比较
nums[j] = nums[index]
return j+1
当然num.pop()方法也可以,但是算法题这个没有必要使用内置函数