显然是一个贪心的思路,但是分类统计略显繁琐,可以借助set统计种类,multiset统计个数。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;cin>>n;
int x,sum=0;
vector<int> a(n+1,0);
for(int i=1;i<=n;i++)
{
int x;cin>>x;
a[i]=x;
}
int cnt=0;
for(int i=1;i<=n-3;i++)
{
multiset<int> st1;
set<int> st2;
for(int j=0;j<=3;j++)
{
st1.emplace(a[i+j]);
st2.emplace(a[i+j]);
}
if(st2.size()==2){//两种数字
if(st1.count(a[i])==1||st1.count(a[i])==3){//其中一种数字个数确定,另一种也确定。
cnt++;
i+=3;
}
}
}
cout<<cnt;
}

京公网安备 11010502036488号