Remove Duplicates from Sorted Array

来源:互联网 发布:c语言中short什么意思 编辑:程序博客网 时间:2024/06/07 16:49
  • 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 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.

两个pointer,一个遍历,另一个记录新的尾下标,时间复杂度o(n),空间复杂度o(1)

“`
class Solution {
public:
int removeDuplicates(vector& nums) {
int size = nums.size();
if(size == 0)
{
return 0;
}

    int index = 0;    for(int i=1;i<size;i++)    {        if(nums[index] != nums[i])        {            nums[++index] = nums[i];        }    }    return index + 1;}

};

0 0