一开始是向两个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;
}
}
京公网安备 11010502036488号