LeetCode | 26. 删除有序数组中的重复项
- 这里的非递增是什么意思?
- 就是反过来的,递减,不能说是乱序~~
- 也就是后一个比前一个小
- 也就是和非递减等价,后一个比前一个大~~
- 所以非递增和非严格递增是不一样的~~
- 这里本质上的一个算法是去重算法,就是要把重复的去掉,只留下一个~~
思路:
- 本质是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; }