题目链接:26. 删除排序数组中的重复项
概述
题目给定一个排序数组,需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
思路
使用双指针p1、p2,其中p1是慢指针、p2是快指针。
如果nums[p1] === nums[p2],我们就增加p2跳过重复项
如果nums[p1] !== nums[p2],说明已经跳过了所有重复项,所以我们需要把nums[p2]的值复制到nums[p1 + 1]中,并把p1往后移动。
直到p2 === nums.length时,算法结束。
因为p1指向的是不重复项的最后一个,因此,最终的数组长度就是p1 + 1。
实现
1 | /** |