1.0题目描述
题目链接: 删除有序数组中重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成
2.0 思路及代码
三指针:
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;
i=j;
}
}
nums[dst] = nums[i];
++dst;//下标加了1
return dst;//此时dst正好为元素的个数
}
3.0 总结
暂无