1、删除排序数组中的重复项
发布于 2022年 02月 15日 18:54
给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。
public int removeDuplicates(int[] nums) {
if (nums.length == 0) return 0;
int pre = 0;
int suf = 1;
while(suf < nums.length){
if(nums[pre] != nums[suf]){
nums[pre + 1] = nums[suf];
pre++;
}
suf++;
}
return pre + 1;
}
解题思路:双指针解法。有点像插入排序,不过每次都插入到已排序部分的最后,时间复杂度O(n)