码迷,mamicode.com
首页 > 编程语言 > 详细

删除顺序数组的重复数字

时间:2017-03-07 22:41:27      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:想法   height   函数   for   存在   com   img   public   应该   

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

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

样例

给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]

 思路:

第一次是错的,后来编译通过了,这道题我的想法是:第一,因为题上要求不能新增数组空间,所以我们考虑在原数组的覆盖,也就是把重复数字覆盖前面的一个数字,后面的依次往前覆盖,在编程里,是不存在删除一说的,只是数据的覆盖。覆盖前面的以后,最后的就可以通过缩小数据空间。

 

 代码:

 

 

class Solution {
public:
int removeDuplicates(vector<int> &nums) {

if(nums.empty())
{
return 0;
}

int n = nums.size(),k=0;

for(int i=1;i<n;++i)
{
if(nums[i] != nums[k])
{
nums[++k] = nums[i];
}
}
nums.resize(k+1);
return k+1;
}
};

 

 

技术分享

 

删除顺序数组的重复数字

标签:想法   height   函数   for   存在   com   img   public   应该   

原文地址:http://www.cnblogs.com/moqinlin/p/6517129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!