1、买帽子--百度2017春招

[编程题] 买帽子
时间限制:1秒
空间限制:32768K
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 
输入描述:
首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)
 
 
输出描述:
如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1
 
输入例子:
10 10 10 10 10 20 20 30 30 40 40
 
输出例子:
30
 
解题思路:本题采用排序处理
1) 将输入的数据进行按照从小到大的顺序排序
2) 分别比较排好序的数据的前后两位  如果大于count++,相等不进行处理;直到count == 2退出循环,或者全部遍历完退出循环
3) 如果count==2 则证明找到价格第三小的帽子,即为hat[i]否则输出-1
 
 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n;
 8     while(cin>>n)
 9     {
10         int count = 0;
11         int hat[n];
12 
13         for(int i=0;i<n;i++)
14         {
15             cin>>hat[i];
16         }
17         sort(hat,hat+n);
18         int i=1;
19         for(;i<n;i++)
20         {
21             if(hat[i]>hat[i-1])
22             {
23                 count++;
24             }
25             if(count == 2)
26             {
27                 break;
28             }
29         }
30         if(count == 2)
31             cout<<hat[i]<<endl;
32         else
33             cout<<-1<<endl;
34     }
35     return 0;
36 }

 

posted @ 2017-05-23 15:22  qqky  阅读(197)  评论(0编辑  收藏  举报