给定升序排序的数组,如果数组有 22 个或 22 个以上相同的数字,去掉他们,直到剩下 22 个为止。
例如:
数组 A[] = [1,1,1,2,2,3]A[]=[1,1,1,2,2,3]
你的算法需要返回新数组的长度 55,
此时 AA 为 [1,1,2,2,3][1,1,2,2,3]。
输入格式
第一行输入一个不超过 200200 的数字 nn,第二行输入 A[n]A[n]。
输出格式
输出新数组的长度。
样例输入
6 1 1 1 1 3 3
样例输出
4
思路:思路太骚,各位直接看代码吧,我是看完大呼卧槽......
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=200+10;
int a[maxn];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int num=n;
int sum=0,j,i;
for( i=0;i<n;i++)
{
for( int j=0;j<n;j++)
{
if(a[i]==a[j])sum++;
}
if(sum>2)
{
num=((num+2)-sum);
i=i+sum;
}
sum=0;
}
cout<<num<<endl;
return 0;
}