跳至主要內容

查找最大和次大的元素

张威小于 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;
 }