美文网首页
笔试刷题-百度2018-06-17

笔试刷题-百度2018-06-17

作者: Dodo159753 | 来源:发表于2018-06-17 08:09 被阅读0次

    题目描述:

    
    /**
    度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。
    度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
    
    输入描述:
    首先输入一个正整数N(N <= 50),
    接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)
    
    输出描述:
    如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1
    
    输入例子1:
    10
    10 10 10 10 20 20 30 30 40 40
    
    输出例子1:
    30
    */ 
    

    思路如下:

    维护3个指针即可

    代码如下:

    
    #include<stdio.h>
    #include<iostream>
    #include<climits>
    
    using namespace std;
    
    int main()
    {
        int first=INT_MAX, second=INT_MAX, third=INT_MAX;
        int N;
        scanf("%d", &N);
        for(int i=0; i<N; i++)
        {
            int data;
            scanf("%d", &data);
            if(data<first)
            {
                third=second;
                second=first;
                first=data;
            }
            else if(data!=first && data<second)
            {
                third=second;
                second=data;
            }
            else if(data!=first && data!=second && data<third)
            {
                third=data;
            }
        }
        if(third==INT_MAX)
            printf("-1");
        else
            printf("%d", third);
        return 0;
    }
    
    
    

    相关文章

      网友评论

          本文标题:笔试刷题-百度2018-06-17

          本文链接:https://www.haomeiwen.com/subject/edwieftx.html