双指针,一个指针 i 扫描数组,一个指针 end 记录没有重复数字的新数组的尾部。

(1) A[end]=A[i],A[i]为重复数字,跳过。

(2) A[end]!=A[i],将A[i]放到A[end+1]位置,end++

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() == 0) {
            return 0;
        }
        int result;
        int end = 0;
        for (int i = i; i < nums.size(); i++) {
            if (nums[i] != nums[end]) {
                end++;
                if (i != end) {
                    nums[end] = nums[i];
                }
            } 
        }
        return end+1;

    }
};

results matching ""

    No results matching ""