图片说明

一开始是向两个for循环 然后看到是拍好序了 就可以考虑用一个for循环
解法 也就是双指针问题

/*
* 一个while循环
* 因为数组是已经排好序了从小到大排序
* 只看看前一个数跟后一个数是否一样
* 如果不一样就放在第 i个数的后面
 */
class Solution {
    public int removeDuplicates(int[] nums) {
        int len = nums.length;
        if (len == 0) return 0;
        int ans = 0;
        int n = 1;
        while (n < len) {
            if (nums[ans] != nums[n]) {
                ans++;
                nums[ans] = nums[n];
            }
            n++;
        }
        return ans + 1;
    }
}