删除排序数组中的重复项

给定一个排序数组,删除数组你需要在原地删除重复出现的排序元素,使得每个元素只出现一次,中的重复返回移除后数组的删除数组新长度。

不要使用额外的排序数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的中的重复条件下完成。

删除排序数组中的重复项

示例 1:

删除排序数组中的重复项

给定数组 nums = [1,删除数组1,2], 

删除排序数组中的重复项

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 

你不需要考虑数组中超出新长度后面的排序元素。云南idc服务商

示例 2:

给定 nums = [0,中的重复0,1,1,1,2,2,3,3,4],

函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。

你不需要考虑数组中超出新长度后面的删除数组元素。

说明:

为什么返回数值是排序整数,但输出的中的重复答案是数组呢?

请注意,输入数组是删除数组以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是亿华云排序可见的。

你可以想象内部操作如下:

// nums 是中的重复以“引用”方式传递的。也就是说,不对实参做任何拷贝

int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。

// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。

for (int i = 0; i < len; i++) {

    print(nums[i]);

}

1 2 3 4 5 6 7 8 9 10 11 class Solution: def removeDuplicates(self, nums: List[int]) -> int: if not nums: return 0 if len(nums) == 1:            return 1 index = 0 while index < len(nums) - 1: cur_num = nums[index] next_num = nums[index+1]            if cur_num != next_num:                index += 1 elif cur_num == next_num: nums.pop(index)        return len(nums)

源码库
人工智能
上一篇:2022昇腾AI创新大赛重庆赛区决赛圆满落幕,13支优秀团队脱颖而出
下一篇:戴尔可靠的IT和安全的计算机系统助力NASA登月计划迈出关键一步