题目:给你一个 升序排列的数组
nums
,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。元素的相对顺序应该保持一致 。
思路:
1、第一个元素默认是被选出的不重复元素,存放在第一个位置nums[0]。
2、拿第二个元素和前一个元素比较,如果相同则检测下一个元素,如果不同则存入第二个位置nums[1].
3、拿第三个元素和前一个元素比较,以此类推。
int removeDuplicates(int* nums, int numsSize)
{
int i=1;//检查下标为i的是否重复出现
int j=1;//已存放好j个元素
while(i<numsSize)
{
if(nums[i]!=nums[i-1])
{
nums[j]=nums[i];
i++;
j++;
}
else
{
i++;
}
}
return j;
}