原题:

https://leetcode.cn/problems/remove-duplicates-from-sorted-array/description/?envType=study-plan-v2&envId=top-interview-150

题解:

public int removeDuplicates(int[] nums) {
    if (nums.length==1) {
        return 1;
    }
    int now = 0;
    int p = 1;
    while (p < nums.length) {
        if (nums[now] != nums[p]) {
            nums[++now]=nums[p];
        }
        p++;
    }
    return now+1;
}

解析:

  1. 数组有序、排重,那么最前面肯定是确定的值,只需要快慢指针,慢指针指向需要操作的数据,快指针指向与慢指针不同的数据,交换即可。