美文网首页
算法:从排序数组中删除重复项

算法:从排序数组中删除重复项

作者: 技术创造未来 | 来源:发表于2019-03-01 15:43 被阅读0次

从排序数组中删除重复项

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

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

示例 1:

给定数组nums=[1,1,2], 函数应该返回新的长度2, 并且原数组nums 的前两个元素被修改为1,2。 你不需要考虑数组中超出新长度后面的元素。

示例 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.对于已经排序的列表,可以通过对列表进行遍历,若nums[i]与nums[i+1]相同,删除nums[i].

2.接下来有两种思路: 

一是将num[i] 与之后的数据进行比较删除, 遍历完成后,再将num[i+1]与 之后的数据进行比较.(算法复杂度高,不好!)

二是直接此次循环结束,然后将num[i+1]与之后的数据进行比较.建议解答二

方法

注意:排序数组,非排序数组不适用。

相关文章

  • LeetCode基础算法-数组

    LeetCode基础算法-数组 算法 LeetCode 数组相关 1. 从排序数组中删除重复项 描述:给定一个排序...

  • leetcode 初级算法 数组(C++)

    初级算法 数组 1.从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一...

  • 数组

    26 删除排序数组中的重复项 使用双指针的做法,删除排序数组中的重复项其实就是找出排序数组中的非重复项,两个指针,...

  • leecode刷题(1)-- 删除排序数组中的重复项

    leecode刷题(1)-- 删除排序数组中的重复项 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重...

  • 2021-10-22 - 学习记录

    一个算法: 删除排序数组中的重复项 git学习知识点:.gitignore添加忽略文件不生效 一个算法: 删除排序...

  • 数组算法-从排序数组中删除重复项

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

  • 算法:从排序数组中删除重复项

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

  • 数组-请你 原地 删除重复出现的元素

    数组是我们用到最多的 删除排序数组中的重复项

  • 2018-07-08

    数组 问题1. 从排序数组中删除重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,...

  • 从排序数组中删除重复项

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

网友评论

      本文标题:算法:从排序数组中删除重复项

      本文链接:https://www.haomeiwen.com/subject/qoiduqtx.html