diff --git a/414. Third Maximum Number.md b/414. Third Maximum Number.md new file mode 100644 index 0000000..4007f1b --- /dev/null +++ b/414. Third Maximum Number.md @@ -0,0 +1,27 @@ +# [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++ +``` +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; + } +}; +```