代码:
至于思路都已经备注了,双指针法
class Solution {
public int removeDuplicates(int[] nums) {
if(nums.length<=1) return nums.length;
//mark是标记插入位置的,comp是标记下一个元素和谁比较
int mark =1; int comp = 0;
for(int i = 1; i<nums.length; i++){
//不相同
if(nums[comp] != nums[i]){
//更新comp的值,将这个不同的值覆盖到mark位置,更新mark
comp = i;
nums[mark] = nums[i];
mark++;
}
}
//mark就是新数组的界限
return mark;
}
}