编程题

找第三个最小的数

输入个数N(10)

输入 1,1,2,3,4,5,5,8,8,9

输出 3

如果不够3个数,输出-1

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std; 
int main(){
    int n,tmp;
    cin>>n;
    vector<int> v;
    while(n--){
        cin>>tmp;
        v.push_back(tmp);
    }
    sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());//unique 函数去掉重复的数,但是向量的大小不变,用最后一个数填补去掉的重复数的个数 1,1,2,3->1,2,3,3.  unique 返回一个指针,指向第二个3
    cout<<(v.size()<3?-1:v[2]);
    return 0;
}

 

posted @ 2017-06-06 23:39  hahahaf  阅读(150)  评论(0编辑  收藏  举报