给定升序排序的数组,如果数组有2个或2个以上相同的数字,去掉他们,直到剩下2个为止。
例如:
数组A[] = [1,1,1,2,2,3]
你的算法需要返回新数组的长度5,
此时A为[1,1,2,2,3].
格式:第一行输入一个数字n,第二行输入A[n],
最后输出新数组的长度。
样例1
输入:
6
1 1 1 1 3 3
输出:
4
#include <iostream>
using namespace std;
int sortRemove(int n, int A[])
{
int k = 0;//超过2的次数
int num = 1;//记录每个元素出现的次数
for (int j = 0; j<n; j++)
{
if (A[j] == A[j + 1])
num++;
else
num = 1;
if (num>2)
k++;
}
return n - k;
}
int main()
{
int n, m, result;
cin >> n;
int *A = new int[n];
for (int i = 0; i<n; i++)
{
cin >> m;
A[i] = m;
}
result = sortRemove(n, A);
cout << result << endl;
delete [ ]A;
return 0;
}