mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
Create 414. Third Maximum Number.md
This commit is contained in:
parent
60bcb36cd6
commit
ddc1a5cf09
27
414. Third Maximum Number.md
Normal file
27
414. Third Maximum Number.md
Normal file
@ -0,0 +1,27 @@
|
||||
# [414. Third Maximum Number](https://leetcode.com/problems/third-maximum-number/description/)
|
||||
# 思路
|
||||
题意就是找出数组第三大的数,注意相同的数算作一个数,可以考虑遍历三次,第一次得到最大的数max1,第二次得到第二大的数max2,第三次就得到了第三大的数max3。
|
||||
注意可以用INT_MIN(在limits.h里)表示int型最小的数,另外需要用一个tag记录是否找到max3,否则当max3==INT_MIN时无法判断max3是否是真的第三大的值还是初始值。
|
||||
# C++
|
||||
```
|
||||
class Solution {
|
||||
public:
|
||||
int thirdMax(vector<int>& nums) {
|
||||
int max1 = INT_MIN, max2 = INT_MIN, max3 = INT_MIN, tag = 0;
|
||||
for(int num: nums)
|
||||
if(max1 <= num)
|
||||
max1 = num;
|
||||
for(int num: nums)
|
||||
if(max2 <= num && num != max1)
|
||||
max2 = num;
|
||||
for(int num: nums)
|
||||
if(max3 <= num && num != max1 && num != max2){
|
||||
max3 = num;
|
||||
tag = 1;
|
||||
}
|
||||
|
||||
if(tag == 0) return max1;
|
||||
return max3;
|
||||
}
|
||||
};
|
||||
```
|
Loading…
Reference in New Issue
Block a user