https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/submissions/

双指针

  • done + cur 指针
  • 左边是排好的区域(不断扩), 中途是垃圾区域, 到最后垃圾区域都在右边

image.png
image.png
image.png
image.png
image.png

  1. public int removeDuplicates(int[] nums) {
  2. if (nums == null ) {
  3. return 0;
  4. }
  5. if (nums.length < 2) {
  6. return nums.length;
  7. }
  8. int done = 0;
  9. for (int i = 1; i < nums.length; i++) {
  10. if (nums[i] != nums[done]) {
  11. nums[++done] = nums[i];
  12. }
  13. }
  14. return done + 1;
  15. }