双指针。
遇到相同的,后指针后移一步。
遇到不同的,把后指针指向的元素复制到前指针的下一个位置,后指针再后移一位继续比较。
int reArrangeArray(int* nums, int numsLen ) {
int i = 0, j = 1;
while(j < numsLen){
if(nums[i] == nums[j])
j++;
else
nums[++i] = nums[j++];
}
return i+1;
}

京公网安备 11010502036488号