题目:
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
思路:
用set去重,而且set底层实现是红黑树,是有序的。所以,set是最合适的容器。
需要注意的是,set不支持随即访问,所以只能将iterator一步一步地挪。
代码实现:
#include <iostream>
#include <set>
using namespace std;
int main(){
int n;
cin >> n;
set<int> s;
for (int i = 0; i < n; ++i){
int t;
cin >> t;
s.insert(t);
}
if (s.size() < 3){
cout << -1 << endl;
return 0;
}
int count = 2;
auto it = s.begin();
while (count){
++it;
--count;
}
cout << *it << endl;
return 0;
}