Сложность: easy
Если задан целочисленный массив nums, верните третье максимальное число в этом массиве. Если третьего максимального числа не существует, верните максимальное число.
Пример:
Input: num1 = "11", num2 = "123"
Output: "134"
👨💻 Алгоритм:
1⃣Инициализируйте три переменные для хранения первого, второго и третьего максимальных чисел.
2⃣Пройдите по массиву nums, обновляя переменные первого, второго и третьего максимальных чисел, избегая дубликатов.
3⃣Верните третье максимальное число, если оно существует, иначе верните первое максимальное число.
😎 Решение:
func thirdMax(_ nums: [Int]) -> Int {
var first: Int? = nil
var second: Int? = nil
var third: Int? = nil
for num in nums {
if num == first || num == second || num == third {
continue
}
if first == nil || num > first! {
third = second
second = first
first = num
} else if second == nil || num > second! {
third = second
second = num
} else if third == nil || num > third! {
third = num
}
}
return third ?? first!
}Ставь 👍 и забирай 📚 Базу знаний
