【Remove Duplicates from Sorted Array】cpp

题目:

https://leetcode.com/problems/remove-duplicates-from-sorted-array/

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

For example,
Given input array A = [1,1,2],

Your function should return length = 2, and A is now [1,2].

代码:

class Solution {
public:
    int removeDuplicates(int A[], int n) {
        if( n==0 ) return 0;
        int index = 0;
        for (unsigned int i=1; i<n; i++)
        {
            if( A[index]!=A[i] )
            {
                A[++index] = A[i];
            }
        }
        return index+1;
    }
};

Tips:

O(n)时间复杂度 O(1)空间复杂度

常用数组去重技巧 记住即可

=============================

第二遍刷的时候,第二次才AC。原因是++prev第一次写成了prev++,细节要注意。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
            if ( nums.size()==0 ) return 0;
            int prev = 0;
            for ( int i=1; i<nums.size(); ++i )
            {
                if ( nums[i]!=nums[prev] ) 
                {
                    nums[++prev] = nums[i];
                }
            }
            return prev+1;
    }
};
原文地址:https://www.cnblogs.com/xbf9xbf/p/4423522.html