双指针经典题目这是一个同向移动的双指针设定[0, index)区间为已经处理好的数据, 当前index位置是下一个可以替换的位置, [index, len)为待处理的数据, i为数据处理使用的游标此对index的位置恰好代表已经处理好的数据的长度, 可以直接返回index
class Solution {
public int removeDuplicates(int[] nums) {
int len = nums.length;
int index = 0;
int i = 0;
while (i < len) {
if (index == 0 || nums[i] != nums[index-1]) {
nums[index++] = nums[i++];
} else {
i++;
}
}
return index;
}
}