难度:简单
解题思路:
排序后的数组,相邻的元素是相等的,就说明重复了,题目要求在原地操作,我们可以设置两个指针,一个用来判断元素相等,一个用来替换,遍历数组,判断到不同元素,把他替换到替换指针的位置,替换指针往前走一位,话不多说,上代码
class Solution {
public int removeDuplicates(int[] nums) {
int j = 1; //用于判断
int x = 0; //用于替换和记录最终长度
for (int i = 0; i < nums.length -1; i = x) {
if (j>=nums.length){break;}
if (nums[i] == nums[j]){
j = j+1;
}else {
x = x+1;
nums[x] = nums[j];
j = j +1;
}
}
return x+1;
}
}