题解思路:使用双指针,定义一个快指针fast和一个慢指针slow;当fast 与 fast-1相同时,++fast;不同时,nums[slow] = nums[fast];最后返回slow即为删除后数组的长度。
public int removeDuplicates(int[] nums){ int n = nums.length; if (n == 0) return 0; int fast = 1; int slow = 1; while (fast < n){ if (nums[fast] != nums[fast-1]){ nums[slow] = nums[fast]; slow++; } fast++; } return slow; }