【LeetCode-简单题】26. 删除有序数组中的重复项

题目

在这里插入图片描述

方法一:快慢指针

在这里插入图片描述

class Solution {
    
    
//快慢指针
    public int removeDuplicates(int[] nums) {
    
    
        int fast = 1;
        int slow = 0;
        while(fast < nums.length){
    
    
            if(nums[fast] == nums[fast-1]) fast++;//若当前元素和之前元素相同  则移动快指针
            else if(nums[fast] != nums[fast-1]){
    
    //若当前元素和之前元素不相同  则利用slow指针记录fast-1位置的元素  并且移动slow 和fast往前一个位置
                    nums[slow] = nums[fast-1];
                    slow++;
                    fast++;
            }
        }
        nums[slow] = nums[fast-1];//处理最后一个组重复或不重复的元素
        return slow+1;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45618869/article/details/132794701