26. Remove Duplicates from Sorted Array 这道题的解题思路是,我们使用快慢指针来记录遍历的坐标,最开始时两个指针都指向第一个数字,如果两个指针指的数字相同,则快指针向前走一步,如果不同,则两个指针都向前走一步,这样当快指针走完整个数组后,慢指针当前的坐标加1就是数组中不同数字的个数

class Solution {
public:
    int removeDuplicates(int A[], int n) {
        if (n <= 1) return n;
        int pre = 0, cur = 0;
        while (cur < n) {
            if (A[cur] == A[pre]) ++cur;
            else A[++pre] = A[cur++];
        }
        return pre + 1;
    }
};

results matching ""

    No results matching ""