思路很简单,一个index,一个i,index移动的前提是有不一样的数字,i是遍历。
只需要把后面的和当前index不相同的值,发现一个就放到index下一位,(注意是排好序的数组)
class Solution {
public int removeDuplicates(int[] nums) {
int index=0;
for(int i =0;i<nums.length;i++){
if(nums[index]!=nums[i]){
nums[++index]=nums[i];
}
}
nums=Arrays.copyOf(nums,index+1);
return index+1;
}
}

本文介绍了一种简单有效的算法,用于从已排序数组中去除重复元素。该算法通过两个指针 index 和 i 进行操作,其中 index 用来标记不重复元素的最新位置,i 则用于遍历整个数组。当遇到不同于 index 位置的元素时,将其移动到 index 的下一个位置,并递增 index。最终返回 index+1 作为不重复元素的数量。
868

被折叠的 条评论
为什么被折叠?



