和I一样的思路,区别仅仅在于当A[end-1] = A[end] = A[i]时,A[i]为重复元素需跳过。而实际只需要比较A[end-1]和A[i],因为当A[end-1] = A[i]时,根据sorted arry特性必然也有A[end]=A[end-1]。

class Solution {
public:
    /**
     * @param A: a list of integers
     * @return : return an integer
     */
    int removeDuplicates(vector<int> &nums) {
        // write your code here
        if(nums.size()<3) return nums.size();
        int end = 1;
        for(int i=2; i<nums.size(); i++) {
            if(nums[i]!=nums[end-1]) {
                end++;
                nums[end] = nums[i];
            }
        }
        return end+1;
    }
};

results matching ""

    No results matching ""