一开始我逻辑上有些问题,我试图通过nums[right] = nums[left]
来移动数组中的元素,但实际上我并不需要这么做。因为我只是在检查相邻的元素是否相同,如果不同,就把左指针left
向右移动一位,并更新nums[left]
的值。
以下是我所撰写的代码,
class Solution {
public int removeDuplicates(int[] nums) {
if (nums.length == 0) {
return 0;
}
int left = 0;
for (int right = 1; right < nums.length; right++) {
if (nums[right] != nums[left]) {
left++;
nums[left] = nums[right];
}
}
return left + 1;
}
}
以下是官方的代码: