Leetcode 414. Third Maximum Number

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Third Maximum Number

2. Solution

  • Version 1
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
class Solution {
public:
int thirdMax(vector<int>& nums) {
long long first = LLONG_MIN;
long long second = LLONG_MIN;
long long third = LLONG_MIN;
for(int i = 0; i < nums.size(); i++) {
if(nums[i] <= third || nums[i] == first || nums[i] == second) {
continue;
}
if(nums[i] > first) {
third = second;
second = first;
first = nums[i];
}
else if(nums[i] > second) {
third = second;
second = nums[i];
}
else {
third = nums[i];
}
}
if(third == LLONG_MIN) {
return first;
}
return third;
}
};
  • Version 2
1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int thirdMax(vector<int>& nums) {
set<int> values(nums.begin(), nums.end());
if(values.size() < 3) {
return *values.rbegin();
}
values.erase(--values.end());
values.erase(--values.end());
return *(--values.end());
}
};

Reference

  1. https://leetcode.com/problems/third-maximum-number/description/
如果有收获,可以请我喝杯咖啡!