题目描述
给你一个 非严格递增排列 的数组 nums
,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums
中唯一元素的个数。
解题思路:
本质上是,j依次找跟i位置不相等值,依次从前往后覆盖存储。
完整代码如下:
int removeDuplicates(int* nums, int numsSize)
{
int i=0;
int j=1;
while(j<numsSize)
{
if(nums[i] == nums[j])
{
j++;
}
else
{
i++;
nums[i]=nums[j];
j++;
}
}
return i+1;
}