思路
定义一个临时数组,初始化0索引的元素和nums一致。从索引1开始循环遍历nums数组,与temp不同的直接存到temp数组中,同时也从nums数组索引1开始覆盖。
解题方法
定义一个临时数组temp,初始化0索引的元素等于nums的0索引元素。定义一个指针j指向temp的0索引位置。
循环遍历nums数组,如果nums的元素不等于temp中j指向的元素,先移动指针指向下一个位置,让temp[j] = nums[i],同时覆盖nums中j索引的元素,即nums[j] = nums[i]。
class Solution {
public int removeDuplicates(int[] nums) {
int[] temp = new int[nums.length];
temp[0] = nums[0];
int j = 0;
for (int i = 1; i < nums.length; i++) {
if(nums[i] != temp[j]){
j++;
temp[j] = nums[i];
nums[j] = nums[i];
}
}
return j+1;
}
}