查找最大和次大的元素
小于 1 分钟
#include <iostream>
#include <vector>
#include <climits> //INT_MIN
using std::cout;
using std::endl;
using std::vector;
void find1and2big(vector<int>& nums, int& big1, int& big2) {
if(nums.size() < 2) {
return;
}
big1 = INT_MIN;
big2 = INT_MIN;
for(int num : nums) {
if(num > big1) {
big2 = big1;
big1 = num;
}
else if(num > big2 && num < big1) {
big2 = num;
}
}
if(big2 == INT_MIN) {
cout << "数组中所有元素都相同或数组大小小于2,无法找到次大值" << endl;
}
}
int main() {
vector<int> vec = {12, 13, 1, 10, 34, 2};
for(int i : vec) {
cout << i << ' ';
}
cout << endl;
int big1, big2;
find1and2big(vec, big1, big2);
cout << big1 << ' ' << big2 << endl;
return 0;
}