题解 | #6的个数#

6的个数

https://ac.nowcoder.com/acm/contest/13493/A

#include<bits/stdc++.h>
using namespace std;
int a[10] = {2, 3, 3, 3, 5, 6, 6, 7, 7, 8};
int ans;

int main(){
    //int a[10] = {2, 3 ,3, 5 ,8 ,6, 3 ,7 ,7, 6};

    do{
        bool flag1 = false, flag2 = false;//flag1表示之前是否出现递增,flag2表示之前是否出现递减
        int cnt = 0;
        for(int i = 0; i + 1 < 10; i ++){
            if(a[i + 1] > a[i]){
                flag1 = true;
                if(flag2){
                     cnt ++;
                    flag2 = false;
                     flag1 = false;//flag1也要,因为当出现分割点后每次要从新的起点开始算,不受之前的区间影响了(这点想了很久才想清楚,调了好久才发现这个错误)

                }

            }
            else if(a[i + 1] < a[i]){
                flag2 = true;
                if(flag1){
                    cnt ++;
                    flag1 = false;
                    flag2 = false;//同理
                }

            }
            else{

            }

        }
        if(cnt <= 2) ans ++;
    }while(next_permutation(a, a + 10));
    cout << ans;
    return 0;
}
全部评论

相关推荐

2024-12-29 11:08
湖南工业大学 Java
程序员牛肉:简历没什么大问题了。 而且不要再换项目了。三月份就开暑期实习了,现在都一月份了。实在来不及重新开一下项目了。把一个项目写完或许很快,但是把一个项目搞懂吃透并不简单。所以不要换项目了,把你简历上面的两个项目好好挖一挖吧。 具体 体现在:你能不能流利的说出你的项目的每一个功能点代码实现?你能不能说出在这块除了A技术之外,还有其他技术能够实现嘛?如果有其他技术能够实现,那你这块为什么选择了你当前用的这个技术?
投递牛客等公司7个岗位
点赞 评论 收藏
分享
2024-12-27 10:21
已编辑
海南师范大学 媒介策划
到我怀里来:身高体重住址这些就别写了,留几个关键的就行,工作经历突出重点写详细点
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务