class algorithm {
public int removeDuplicates(int[] nums) {
if(nums.length==0) return 0;
int i=0;
for(int j=1;j<nums.length;j++){
//如果不相等,则将左指针后移一位,并且赋值右指针的值
if(nums[j]!=nums[i]){
i++;
nums[i]=nums[j];
}
//如果不相等,i 后移 1 位,然后将 j 位置的值赋值到 i 新位置上,j 继续后移一位(其实就是循环+1)
}
//最终数组的长度就是左指针的位置+1
return i+1;
}
}
//比较 i 和 j 位置的元素是否相等
// 如果相等,j 后移 1 位,i 不需要动
// 如果不相等,i 后移 1 位,然后将 j 位置的值赋值到 i 新位置上,j 继续后移一位(其实就是循环+1)
// 重复上述过程,直到 j 指向数组最后一个元素
// 返回 i + 1,即为新数组长度
JAVA实现删除有序数组中的重复项:给你一个有序数组 nums ,删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
最新推荐文章于 2023-07-06 11:32:22 发布