找第三个最小的数
输入个数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; }
原文:http://www.cnblogs.com/fanhaha/p/6954227.html