1.解题思路
由于数组为非严格递增排列的数组,因此可利用快慢指针,如果快指针减一不等于快指针,将快指针的值给慢指针,并将快慢指针同时加一,但如果相同,则只让快指针加一向后走.
2.代码实现
int removeDuplicates(int* nums, int numsSize) { if (numsSize == 0) { return 0; } int fast = 1, slow = 1; while (fast < numsSize) { if (nums[fast] != nums[fast - 1]) { nums[slow] = nums[fast]; ++slow; ++fast; } else { ++fast; } } return slow; }
结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!