题目描述:给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
题目链接:414. 第三大的数
class Solution {
public:
int thirdMax(vector<int>& nums) {
long long big1=-1e18,big2=-1e18,big3=-1e18;
for (int i=0;i<nums.size();i++){
if (nums[i]>big1){
big3=big2;
big2=big1;
big1=nums[i];
continue;
}
if (nums[i]==big1){
continue;
}
if (nums[i]>big2){
big3=big2;
big2=nums[i];
continue;
}
if (nums[i]==big2) continue;
if (nums[i]>big3){
big3=nums[i];
continue;
}
}
if (big3>-1e18) return big3;
else return big1;
}
};