
遍历数组,维护三个变量记录最大的三个数,如果遇到相同的数直接跳过,遇到不同的数就跟当前记录的三个最大数比较大小。
class Solution {
public:
int thirdMax(vector<int>& nums) {
long long m1 = -9e9, m2 = m1, m3 = m1;
for(auto n : nums){
if(n == m1 || n == m2 || n == m3) continue;
if(n > m1){
m3 = m2;
m2 = m1;
m1 = n;
}else if(n > m2){
m3 = m2;
m2 = n;
}else if(n > m3){
m3 = n;
}
}
if(m3 == -9e9) return m1;
return m3;
}
};
该博客内容介绍了一个C++实现的解决方案,用于在数组中找到第三大的数。算法通过遍历数组,维护三个变量记录最大的三个数,跳过重复的数,并根据比较更新这三个变量。如果数组中没有三个不同的最大数,则返回最大的数。

被折叠的 条评论
为什么被折叠?



