解题思路:

注意事项:

multiset容器是会自动从小到大排列顺序的数组,只不过没有数组的下标,寻找它的某一个元素需要知道这个元素的值是多少



参考代码:

#include<bits/stdc++.h>

//万能头文件

using namespace std ;

int main ( )

{

     int n=0 ,a=0 ,b=0 ;

     int firstElement=0 ,lastElement=0 ;

     multiset<int>st ;

        //建立名字叫 st 的multiset容器 它的元素是int类型

     cin>>n ;

     for ( int i=0 ; i<n ; i++ )

     {

             cin>>a ;

             if ( i!=0 )

             {

                     int temp=abs(b-a) ;

                    //求整数的绝对值 abs( )

                     st.insert(temp) ;

                        //把temp插入 st 中

             }

             b=a ;

     }


     //for ( auto it:st ) cout<<it<<"\t" ;

    //上面这句话是遍历输出st的全部元素

    

         if ( !st.empty() ) 

        // st 不是空的

        {

            firstElement = *st.begin() ;

             lastElement = *st.rbegin() ;

        }

        

        for ( int i=firstElement ; i<=lastElement ; i++ )

        {

                if ( st.find(i)==st.end() )

                //不能说 i!=st.find(i)     但意思就是这个意思

                {

                        cout<<"Not jolly"<<endl ;

                        return 0 ;

                 }

         }

        cout<<"Jolly"<<endl ;

         return 0 ;

}

/*方式二:豆包修改版本

#include <iostream>

#include <set>

#include <cmath>

 

int main() {

    int n = 0, a = 0, b = 0;

    std::multiset<int> st;

 

    std::cin >> n;

 

    // 处理 n 为 1 的特殊情况

    if (n == 1) {

        std::cout << "Jolly" << std::endl;

        return 0;

    }

 

    for (int i = 0; i < n; i++) {

        std::cin >> a;

        if (i != 0) {

            int temp = std::abs(b - a);

            st.insert(temp);

        }

        b = a;

    }

 

    // 检查是否包含从 1 到 n - 1 的所有差值

    for (int i = 1; i < n; i++) {

        if (st.find(i) == st.end()) {

            std::cout << "Not jolly" << std::endl;

            return 0;

        }

    }

 

    std::cout << "Jolly" << std::endl;

    return 0;

}

*/

点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论