LintCode领扣 题解 | 阿里巴巴高频题:删除排序数组中的重复数字

题目描述

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

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

样例

样例 1:

输入: [] 输出: 0

样例 2:

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

题目解析

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

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

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

参考代码

点击LintCode进行在线评测

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组 记录《剑指offer》中所有关于数组的题目,以及LeetCode中的相似题目 相关题目列表 说明 由于简书...
    wenmingxing阅读 1,532评论 1 12
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,741评论 1 45
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,413评论 0 2
  • 周末,在家断舍离,到现在刚刚忙完。送出了好久不穿的衣服,鞋子;清理了衣柜,房间;清洗了床单,被罩;处理了垃圾,废物...
    在水一方_2018阅读 191评论 0 2
  • 灰汤粽丨是杭州桐庐山区传承了数百年的农家美食。 每逢端午,这里的百姓人家就会将糯稻草烧成灰,加开水过滤,滤出的灰汤...
    谷雨CHN阅读 447评论 0 0