题解 | 小红的三带一

小红的三带一

https://www.nowcoder.com/practice/f71aec371e30425dbe3cc509bafe4158

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;cin>>n;
    vector<int>a(n);
    for(int i=0;i<n;i++) cin>>a[i];
    int num=0,i=0;
  //四个一组
    while(i<=n-4){
        map<int,int> freq;
        for(int j=0;j<4;j++) freq[a[i+j]]++;
        int valid=0;
	  //检查是否为“三带一”
        if(freq.size()==2){
            int cnt1=freq.begin()->second;
            int cnt2=next(freq.begin())->second;
            if((cnt1==3&&cnt2==1)||cnt1==1&&cnt2==3) valid=1;
        }
        if(valid) {
            num++;i+=4;
        }
        else i++;
    }
    cout<<num;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
爱写代码的菜code...:哎,自己当时拿到字节offer的时候也在感叹终于拿到了,自己当时最想去的企业就是字节,结果还是阴差阳错去了鹅厂。祝uu一切顺利!!!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务