码迷,mamicode.com
首页 > 其他好文 > 详细

编程题

时间:2017-06-07 00:44:36      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:code   vector   unique   back   cout   sort   push   大小   begin   

找第三个最小的数

输入个数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;
}

 

编程题

标签:code   vector   unique   back   cout   sort   push   大小   begin   

原文地址:http://www.cnblogs.com/fanhaha/p/6954227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!