# [414. Third Maximum Number](https://leetcode.com/problems/third-maximum-number/description/) # 思路 题意就是找出数组第三大的数,注意相同的数算作一个数,可以考虑遍历三次,第一次得到最大的数max1,第二次得到第二大的数max2,第三次就得到了第三大的数max3。 注意可以用INT_MIN(在limits.h里)表示int型最小的数,另外需要用一个tag记录是否找到max3,否则当max3==INT_MIN时无法判断max3是否是真的第三大的值还是初始值。 # C++ ```C++ class Solution { public: int thirdMax(vector& 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; } }; ```