买帽子-百度-重复元素排序

来源:互联网 发布:管易软件 编辑:程序博客网 时间:2024/04/29 00:09
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 
输入描述:
首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)


输出描述:
如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1

输入例子:
1010 10 10 10 20 20 30 30 40 40

输出例子:

30

自己的代码:

#include<iostream>#include<vector>#include<map>using namespace std;int main(){    int N;    cin>>N;    vector<int> price;    for(int i=0;i<N;i++){        int p;        cin>>p;        price.push_back(p);    }    map<int,int> tongji;    for(int i=0;i<N;i++){        if(tongji.find(price[i])==tongji.end())            tongji[price[i]]=0;        tongji[price[i]]++;    }    int n=0;    map <int, int>::iterator m1_Iter;    for ( m1_Iter = tongji.begin( ); m1_Iter != tongji.end( ); m1_Iter++ ){        n++;        if(n==3)            cout<<m1_Iter->first;    }    if(n<3)        cout<<-1;    }


参考代码:

#include <iostream>using namespace std;int main(){     inti,p,N,a[1001]={0};     cin>>N;     for(i=0;i<N;++i){         cin>>p;         ++a[p];     }     p=0;     for(i=1;i<=1000;++i){         if(a[i]>0)++p;         if(p==3)break;     }     if(p==3) cout<<i;    else cout<<-1;    cout<<endl;    return 0;  }


0 0
原创粉丝点击