思路:双指针。
慢指针指向不重复的最后一个元素,快指针进行判重,如果重复,快指针继续移动;如果不重复慢指针移动一步,并把不重复的元素填充到慢指针的位置。
代码:
class Solution {
public int removeDuplicates(int[] nums) {
if (nums.length == 0) {
return 0;
}
int low = 0;
for (int fast = 1; fast < nums.length; fast++) {
if (nums[fast] != nums[fast - 1]) {
low++;
nums[low] = nums[fast];
}
}
return low + 1;
}
}