一.题目描述
二.题目分析
要求删除数组中的重复项,并且返回修改后元素个数,题目要求:原地删除,这就要求时间复杂度为O(1),空间复杂度为O(1).
三.解题思路分析
用两个指针,因为数组中元素是有序的,要求在数组中修改,那就需要考虑快慢指针了,fast,slow,
四.代码实现
int removeDuplicates(int* nums, int numsSize)
{
int count=0;
int slow=0;
int fast=1;
while(fast<numsSize)
{
if(nums[slow]==nums[fast])
{
fast++;
}
else
{
count++;
nums[slow+1]=nums[fast];
slow++;
fast++;
}
}
return count+1;
}