Skip to content

Latest commit

 

History

History
27 lines (26 loc) · 1.07 KB

414. Third Maximum Number.md

File metadata and controls

27 lines (26 loc) · 1.07 KB

思路

题意就是找出数组第三大的数,注意相同的数算作一个数,可以考虑遍历三次,第一次得到最大的数max1,第二次得到第二大的数max2,第三次就得到了第三大的数max3。
注意可以用INT_MIN(在limits.h里)表示int型最小的数,另外需要用一个tag记录是否找到max3,否则当max3==INT_MIN时无法判断max3是否是真的第三大的值还是初始值。

C++

class Solution {
public:
    int thirdMax(vector<int>& nums) {
        int max1 = INT_MIN, max2 = INT_MIN, max3 = INT_MIN, tag = 0;
        for(int num: nums)
            if(max1 <= num)
                max1 = num;
        for(int num: nums)
            if(max2 <= num && num != max1)
                max2 = num;
        for(int num: nums)
            if(max3 <= num && num != max1 && num != max2){
                max3 = num; 
                tag = 1;
            }
                
        if(tag == 0) return max1;
        return max3;
    }
};