26. 删除排序数组中的重复项
题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
思路:j用来扫描,当发现一个新元素时,将其填入到i指示到位置
代码:
class Solution {
public int removeDuplicates(int[] nums) {
int n = nums.length;
int count = 0; //计算某个元素多余的次数
int i=0;
int j=1;
while(j<n){
if(nums[j]==nums[i]){
count++;
} else{
nums[i+1] = nums[j];
i++;
}
j++;
}
return n-count;
}
}

浙公网安备 33010602011771号