题目
算法思想 :因为不能开辟新的空间,所以我们需要直接在原数组进行修改。我们定义三个指针i,j,k。i表示一段相同数的起始位置,j则是找到第一个与nums[i]不相等的位置,找到以后nums[k] = nums[i],表示覆盖原来多余的元素,直接替换为不同的元素。
int removeDuplicates(vector<int>& nums) {
int i = 0,j = 0,k = 0;
if(nums.size() == 0)
return 0;
while(i < nums.size())
{
for(j = i+1;j < nums.size();j++)
{
if(nums[i] != nums[j] )
{
nums[k] = nums[i];
k++;
i = j;
}
}
if(j == nums.size())
{
nums[k] = nums[i];
k++;
break;
}
}
return k;
}