给定升序排序的数组,如果数组有 2 个或 2 个以上相同的数字,去掉他们,直到剩下 2 个为止。
例如:
数组 A[]=[1,1,1,2,2,3]
你的算法需要返回新数组的长度 5,
此时 A 为 [1,1,2,2,3]。
输入格式
第一行输入一个不超过 200 的数字 n,第二行输入 A[n]。
输出格式
输出新数组的长度。
样例输入
6 1 1 1 1 3 3
样例输出
4代码:
#include<iostream>
using namespace std;
int main()
{
int n,a[210];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int count=n;
for(int i=1;i<n-1;i++)
{
if(a[i-1]==a[i]&&a[i]==a[i+1])
{
count--;
}
}
cout<<count<<endl;
return 0;
}
这一题其实很简单的,一个循环,判断一个元素是不是出现多于两次,如果多于两次,按两次来算。先把输入的数的个数记作count,如果出现一个多余的数就减一。