Third Maximum Number
Last updated
Last updated
public int thirdMax(int[] nums) {
final long minNum = Long.MIN_VALUE;
long firstMax = minNum;
long secondMax = minNum;
long thirdMax = minNum;
for (int num : nums) {
firstMax = Math.max(firstMax, num);
}
for (int num : nums) {
if (num != firstMax) {
secondMax = Math.max(secondMax, num);
}
}
for (int num : nums) {
if (num != firstMax && num != secondMax) {
thirdMax = Math.max(thirdMax, num);
}
}
return (int) (thirdMax == minNum ? firstMax : thirdMax);
}public int thirdMax(int[] nums) {
Integer firstMax = null;
Integer secondMax = null;
Integer thirdMax = null;
for (Integer num : nums) {
if (num.equals(firstMax) || num.equals(secondMax) || num.equals(thirdMax)) {
continue;
}
if (firstMax == null || num > firstMax) {
thirdMax = secondMax;
secondMax = firstMax;
firstMax = num;
} else if (secondMax == null || num > secondMax) {
thirdMax = secondMax;
secondMax = num;
} else if (thirdMax == null || num > thirdMax) {
thirdMax = num;
}
}
return thirdMax == null ? firstMax : thirdMax;
}