题目介绍
解题方法
和27题类似(双指针法)
一个指针 i 进行数组遍历,另外一个指针 idx 指向有效数组的最后一个位置。只有当 i 所指向的值和 idx 不一致(不重复),才将 i 的值添加到 idx 的下一位置。
class Solution {
public int removeDuplicates(int[] nums) {
int n = nums.length;
int idx = 0;
//第一个元素不动,从第二个元素开始覆盖
for (int i = 0; i < n; i++) {
if (nums[i] != nums[idx]) {
nums[idx + 1] = nums[i];
idx++;
}
}
return idx + 1;
}
}