利用双指针法,left来代表删除过后的数组指针,right代表遍历的指针,一次遍历即可完成更新。
class Solution {
public int removeDuplicates(int[] nums) {
if(nums==null || nums.length==0)return 0;
int left=0;
int right=1;
while(right<nums.length){
if(nums[right]!=nums[left]){
left++;
nums[left]=nums[right];
}else{
right++;
}
}
return left+1;
}
}