26. 删除有序数组中的重复项

128 阅读1分钟

题目描述

26. 删除有序数组中的重复项 - 力扣(LeetCode)

思路:

由于题目说不需要考虑数组中超出新长度后面的元素,所以我们可以利用左右指针,左边的指针表示数组的新长度,右边的指针遍历数组,判断该位置是否和前面一个位置相等。

class Solution {
    public int removeDuplicates(int[] nums) {
        if (nums.length == 0)
            return 0;
        int left = 1;
        for (int right = 1; right < nums.length; right++) {
            if (nums[right] != nums[right - 1]) {
                nums[left] = nums[right];
                left++;
            }
        }
        return left;
    }
}