阿里巴巴高频题:删除排序数组中的重复数字

2020-01-09 18:24:30 +08:00
 hakunamatata11

专栏 | 九章算法 网址 | www.jiuzhang.com/?utm_source=sc-csdn-fks

题目描述

给定一个排序数组,在原数组中“删除”重复出现的数字,使得每个元素只出现一次,并且返回“新”数组的长度。

不要使用额外的数组空间,必须在不使用额外空间的条件下原地完成。

样例

样例 1: 输入: [] 输出: 0

样例 2: 输入: [1,1,2] 输出: 2 解释: 数字只出现一次的数组为: [1,2]

题目解析

由于有序,所以相同的数字排在一起。

用一个游标变量指向已经去重的部分的下一个空位,只要 a[i] != a[i-1]a[i]!=a[i−1],就将 a[i]填入之前的空位。

遍历一次数组,将不重复元素保留,重复元素被覆盖,最后删除末尾剩余的元素即可。

参考代码

最后,送一波免费的算法课资源~

背包四讲这门原价$199 的课程,现在:

戳我免费试听后,加九章-Sunny 微信号:jiuzhang15,回复「 V2EX 背包」+试听截图即可获得全额抵价券,0 元听课

971 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/636604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX