414. 第三大的数
思路:a、b、c存储最大值、次大值、第三大值
遍历每一个元素,更新a、b、c的值,最后特殊判断一下如果c的值没有被更新,那么返回a
因为可能会爆INT_MIN所以要开long long
class Solution {
public:
int thirdMax(vector<int>& nums) {
typedef long long LL;
const LL INF = 1e18;
LL a = -INF, b = -INF, c = -INF;
for (auto& x : nums) {
if (x > a) {
c = b, b = a, a = x;
}
else if (x > b && x < a) {
c = b, b = x;
}
else if (x > c && x < b) {
c = x;
}
}
if (c < -1e16) return a;
return c;
}
};