题目描述
点击直达题目链接
解题思路
我们用两个下标i,j进行标记。i进行遍历数组,j用于和i对应的数进行比较。不同时才移动。
具体玩法:
i,j从开始进行匹配查找,当i,j指向的数相等时,i移动,j不动。当i和j指向的数不相等时,j移动一位,然后把i对应的值覆盖给j对应的值,接着i再移动。直到i遍历完整个数组。
代码
int removeDuplicates(int* nums, int numsSize){ int i=0,j=0; while(i<numsSize) { if(nums[i]==nums[j]) { i++; } else { j++; nums[j]=nums[i]; i++; } } return j+1; }