您的位置:首页 > 产品设计 > UI/UE

leetcode question 26:Remove Duplicates from Sorted Array

2018-03-06 19:53 381 查看
问题:
Given a sorted array, remove the duplicates in-place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.Example:Given nums = [1,1,2],

Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
It doesn't matter what you leave beyond the new length.

这个问题叫我们对一个已经排好序的数组进行去重操作,判断出不重复的元素有多少个。直接思路就是直接遍历一次,判断其与前一个元素是否是重复就可以了。
代码如下:class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if( nums.size() == 0 ){
return 0;
}

int len = 1;
for( int i = 0 ; i < nums.size() ; i++ ){
if( i == 0 ){
continue;
}
if( nums[i] != nums[i-1] ){
nums[len] = nums[i];
len ++;
}
}

return len;
}
};

这里一开始做的时候出了一个小bug,他是这样显示的:
"Runtime Error Message:reference binding to null pointer of type 'struct value_type'
Last executed input: []
上网查了下,这个意思是说当测试输入是空集时报错,后来看了下发现是自己一开始没有对空集的情况进行讨论,空集时返回的是1.所以出现了错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 算法