一次遍历找到第二大元素
其实很简单,相信大家都知道怎么找到一个数组中的最大元素,只需要一次遍历就可以
因为首先设第一个变量为第一个最大的元素,之后对比换下比他大的元素,这么一来第二大元素不就出现了呢
int find_second_biggest(vector<int> &v){
int len = v.size();
int max,second;
if (len < 2){
return -1;
}
if (v[0]>v[1]){
second = v[1];
max = v[0];
}
else{
second = v[0];
max = v[1];
}
for (int i=2; i< len; i++){
if(max < v[i]){
second = max;
max = v[i];
}
else if (second < v[i]){
second = v[i];
}
}
return second;
}