leetcode_third_maximum_number

难度:Easy

维护一个数组ret,ret[0]为最大值,ret[1]为第二大,ret[2]为最小值。初始化成LONG_MIN。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Solution {
public:
int thirdMax(vector<int>& nums) {
vector<long> ret{LONG_MIN,LONG_MIN,LONG_MIN};
for(int i = 0; i < nums.size(); i++)
{
if(nums[i] > ret[2])
{
if(nums[i] > ret[1])
{
if(nums[i] > ret[0])
{
ret[2] = ret[1];
ret[1] = ret[0];
ret[0] = nums[i];
}
else if(nums[i] == ret[0])
continue;
else
{
ret[2] = ret[1];
ret[1] = nums[i];
}
}
else if(nums[i] == ret[1])
continue;
else
{
ret[2] = nums[i];
}
}
}
return (ret[2]==LONG_MIN)?((ret[0]==LONG_MIN)?0:ret[0]):ret[2];
}
};

6ms,66.19%