给定升序排序的数组,如果数组有 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
简单题:思路for循环扫描
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[201],b[100];
int main()
{
int n,m=0,temp,sum=0;
cin>>n;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++)
{
temp=a[i];
if(temp==-10000000)
{
continue;
}
else
{
for(int j=i;j<n;j++)
{
if(temp==a[j])
{
b[m]++;
a[j]=-10000000;
}
}
m++;
}
}
for(int i=0;i<m;i++)
{
if(b[i]>2)
{
sum=sum+2;
}
else
{
sum=sum+b[i];
}
}
cout<<sum<<endl;
return 0;
}