414. Third Maximum Number LeetCode Solution
In this guide, you will get 414. Third Maximum Number LeetCode Solution with the best time and space complexity. The solution to Third Maximum Number problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Third Maximum Number solution in C++
- Third Maximum Number solution in Java
- Third Maximum Number solution in Python
- Additional Resources

Problem Statement of 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.
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?
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(1)
414. Third Maximum Number LeetCode Solution in C++
class Solution {
public:
int thirdMax(vector<int>& nums) {
long max1 = LONG_MIN; // the maximum
long max2 = LONG_MIN; // the second maximum
long max3 = LONG_MIN; // the third maximum
for (const int num : nums)
if (num > max1) {
max3 = max2;
max2 = max1;
max1 = num;
} else if (max1 > num && num > max2) {
max3 = max2;
max2 = num;
} else if (max2 > num && num > max3) {
max3 = num;
}
return max3 == LONG_MIN ? max1 : max3;
}
};
/* code provided by PROGIEZ */
414. Third Maximum Number LeetCode Solution in Java
class Solution {
public int thirdMax(int[] nums) {
long max1 = Long.MIN_VALUE; // the maximum
long max2 = Long.MIN_VALUE; // the second maximum
long max3 = Long.MIN_VALUE; // the third maximum
for (final int num : nums)
if (num > max1) {
max3 = max2;
max2 = max1;
max1 = num;
} else if (max1 > num && num > max2) {
max3 = max2;
max2 = num;
} else if (max2 > num && num > max3) {
max3 = num;
}
return max3 == Long.MIN_VALUE ? (int) max1 : (int) max3;
}
}
// code provided by PROGIEZ
414. Third Maximum Number LeetCode Solution in Python
class Solution:
def thirdMax(self, nums: list[int]) -> int:
max1 = -math.inf # the maximum
max2 = -math.inf # the second maximum
max3 = -math.inf # the third maximum
for num in nums:
if num > max1:
max3 = max2
max2 = max1
max1 = num
elif max1 > num and num > max2:
max3 = max2
max2 = num
elif max2 > num and num > max3:
max3 = num
return max1 if max3 == -math.inf else max3
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.