给定一个升序排列的数组,去掉重复的数,并返回新的数组的长度。
例如:
数组A = {1, 1, 2},你的函数应该返回长度2,新数组为{1, 2}
要求:
不能新开数组分配额外的空间。即常数空间限制。
提示:
输入一个整数n,以及其对应的数组A[n],输出新数组长度
样例1
输入:
5
0 0 1 1 2
输出:
3
# include <iostream>
#include <vector>
using namespace std;
int removeElem(vector<int> A,int n)
{
int i,j,num=n;
i = 0;
j = i+1;
while(j<n)
{
if(A[i]==A[j])
{
num--;
i++;
j++;
}
else
{
i++;
j++;
}
}
return num;
}
int main()
{
int m,elem,result;
vector<int> ivec;
cin>>m;
while(m>0)
{
cin>>elem;
ivec.push_back(elem);
m--;
}
m = ivec.size();//数组元素的个数
result = removeElem(ivec,m);
cout << result <<endl;
return 0;
}