思路:设置双指针,slow表示有序数组的终点,fast用于遍历整个数组,如果slow和fast指向的数值不同,向前移动slow并赋值nums[fast],最终返回slow+1表示有序数组的长度。
public int removeDuplicates(int[] nums) {
int slow=0;
int fast=1;
while(fast<nums.length){
if(nums[slow]!=nums[fast]){
nums[++slow]=nums[fast];
}
fast++;
}
return slow+1;
}