26. Remove Duplicates from Sorted Array
题目如上 ,然后我这里有两种办法,第一种,利用一个标记数组记录已经有的数字,不过因为题目的数字取值范围有负数,所以要将题目中的数组成员全部加1000,保证没有负数,不过赋值的时候不需要管,代码如下
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int first=0,second=0;
int size = nums.size();
bool book[10000000]={0,};
for(int first =0;first<size;first++){
if(!book[nums[first]+1000]){
nums[second++]=nums[first];
book[nums[first]+1000]=true;
}
}
return second;
}
};
下面这个和上面一个second意义不同,上面的second表示的是数组边界,下面的second表示的实际长度
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if( nums.size()==0)
return 0;
int first=0,second=0;
int size = nums.size();
for(int first =1;first<size;first++){
if(nums[first]!=nums[second]){
nums[++second]=nums[first];
}
}
return second +1;
}
};