26. 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 by modifying the input array in-place with O(1) extra memory.

Example:

Given nums = [1,1,2],

Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
It doesn't matter what you leave beyond the new length.

输出不同的元素的个数,并把n个不重复的元素放在数组的前n个位置。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int count = 0;  //count代表重复的数字有几个
        int n=nums.capacity();  
        for(int i = 1; i < n; i++){
            if(nums[i] == nums[i-1]) 
                count++;  
            else nums[i-count] = nums[i]; //i-count 代表目前为止互不相同的数字有几个。(第几个不重复的数字就把它放在第几位)
        }
        return n-count;  //返回不重复的数字个数
    }
};

 

posted @ 2017-11-14 22:26  hozhangel  阅读(104)  评论(0编辑  收藏  举报