删除排序数组中的重复项 II
题目
80. 删除有序数组中的重复项 II - 力扣(LeetCode)
这里我们使用了两个指针,一个是slow指针,一个是fast指针,slow指针代表着遍历到某个节点的时候该填的位置,而fast指针代表着向前持续遍历指针。
初始化
slow指针和fast指针应该同时从2开始遍历,从2开始,即使前面有两个相同的也不影响。
代码
class Solution {public int removeDuplicates(int[] nums) {if(nums.length<=2){return nums.length;}int slow=2;int fast=2;while(fast<nums.length){//快指针进行遍历数组if(nums[slow-2]!=nums[fast]){//当该填表的位置的前两个和当前遍历的位置不同,填表nums[slow]=nums[fast];slow++;}fast++;}//填表结束最后一个位置填完,slow++得到长度return slow;}
}