LeetCode | 26. 删除有序数组中的重复项
OJ链接
- 这里的非递增是什么意思?
- 就是反过来的,递减,不能说是乱序~~
- 也就是后一个比前一个小
- 也就是和非递减等价,后一个比前一个大~~
- 所以非递增和非严格递增是不一样的~~
- 这里本质上的一个算法是去重算法,就是要把重复的去掉,只留下一个~~
思路:
- 本质是dst在后面依次找 跟src位置不相等,依次从前往后覆盖~~
代码如下:
int removeDuplicates(int* nums, int numsSize){
int src = 0;
int dst = 1;
while(dst < numsSize)
{
if(nums[src]!=nums[dst])
{
nums[++src] = nums[dst++];
}
else
{
++dst;
}
}
return src + 1;
}