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];    
  };