All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0401_0500.s0414_third_maximum_number.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0401_0500.s0414_third_maximum_number;

// #Easy #Array #Sorting #2022_07_16_Time_1_ms_(97.59%)_Space_41.9_MB_(92.80%)

/**
 * 414 - Third Maximum Number\.
 *
 * Easy
 *
 * 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. 
 *
 * **Example 3:**
 *
 * **Input:** nums = [2,2,3,1]
 *
 * **Output:** 1
 *
 * **Explanation:** The first distinct maximum is 3. The second distinct maximum is 2 (both 2's are counted together since they have the same value). The third distinct maximum is 1. 
 *
 * **Constraints:**
 *
 * *   1 <= nums.length <= 104
 * *   -231 <= nums[i] <= 231 - 1
 *
 * **Follow up:** Can you find an `O(n)` solution?
**/
public class Solution {
    public int thirdMax(int[] nums) {
        long max1 = Long.MIN_VALUE;
        long max2 = Long.MIN_VALUE;
        long max3 = Long.MIN_VALUE;
        for (int i : nums) {
            max1 = Math.max(max1, i);
        }
        for (int i : nums) {
            if (i == max1) {
                continue;
            }
            max2 = Math.max(max2, i);
        }
        for (int i : nums) {
            if (i == max1 || i == max2) {
                continue;
            }
            max3 = Math.max(max3, i);
        }
        return (int) (max3 == Long.MIN_VALUE ? max1 : max3);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy