题目讲解
删除有序数组中的重复项
去重
给你一个有序数组nums ,请你原地·删除重复出现的元素,使没个元素值出现一次,返回删除后数组的长度
**注意:**不要使用额外的数组空间,你·必须在原地修改输入数组并使用O(1)额外空间的条件完成
eg:
输入:nums=[1,1,2]
输出:2,nums=[1,2]
解释:函数应该返回新的长度为2,并且原数组nums的前两个元素被修改为1,2。不需要考虑新数组中超出新长度后面的元素
c
#include<stdio.h>
int main()
int removeDuplicates(int* nums, int numssize)
if(numsSize==0)
return 0;
int i=0, j=1;
int dst = 0;
while(j<numsSize)
{
if(nums[i]== nums[j])
{
++j;
}
}
else
{
nums[dst]= nums[i];
++dst;
++j;
i=j;
}
}
nums[dst]=nums[i];
++dst;
return dst;
}