百度机试—买帽子

xiaoxiao2021-02-27  327

度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 

输入描述:
首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)
输出描述:
如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1
输入例子:
10 10 10 10 10 20 20 30 30 40 40
输出例子:
30

#include "stdafx.h" #include <iostream> #include <algorithm> #include <set> using namespace std; int N; class Solution { public: void third_cat(int* cat, int num) { //sort(cat,cat+num); set<int> myset; for (int i = 0;i < num;i++) //set升序排列且去重 { myset.insert(cat[i]); } set<int>::iterator it = myset.begin(); //迭代器定义要放在set赋值后 if (myset.size() >= 3) //有第三便宜 { it++; cout << *(++it); } else { cout << -1; } } }; int* get_number(void) { cin >> N; int* cat = new int[N]; for (int i = 0;i < N;i++) { cin >> cat[i]; } return cat; //for (int i = 0;i < N;i++) //{ // cout<< cat[i]<<" "; //} } int main() { int* cat; Solution s; cat=get_number(); //for (int i = 0;i < N;i++) //{ // cout<< cat[i]<<" "; //} s.third_cat(cat, N); delete[] cat; system("PAUSE"); return 0; }

转载请注明原文地址: https://www.6miu.com/read-3766.html

最新回复(0)