# Write a Program to Find Third Maximum Number

# 414. Third Maximum Number

Given an integer array nums, return the third distinct maximum number in this array. If the third maximum does not exist, return the maximum number.

```### Example 1:
```
Input: nums = [3,2,1]
Output: 1
Explanation:
The first distinct maximum is 3.
The second distinct maximum is 2.
The third distinct maximum is 1.
```
```
```### Example 2:
```
Input: nums = [1,2]
Output: 2
Explanation:
The first distinct maximum is 2.
The second distinct maximum is 1.
The third distinct maximum does not exist, so the maximum (2) is returned instead.
```
```
```Constraints:
```
1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1
```
```
```/**
* @param {number[]} nums
* @return {number}
*/
var thirdMax = function(arr) {
const max = [-Infinity, -Infinity, -Infinity];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === max[0] || arr[i] === max[1] || arr[i] === max[2]) continue;

if (arr[i] > max[0]) {
max[2] = max[1];
max[1] = max[0];
max[0] = arr[i];
} else if (arr[i] > max[1]) {
max[2] = max[1];
max[1] = arr[i];
} else if (arr[i] > max[2]) {
max[2] = arr[i];
}
}
return max[2] === -Infinity ? max[0] : max[2];
};
```