Сложность: easy
Если задан целочисленный массив nums, верните третье максимальное число в этом массиве. Если третьего максимального числа не существует, верните максимальное число.
Пример:
Input: nums = [3,2,1]
Output: 1
👨💻 Алгоритм:
1⃣Инициализируйте три переменные для хранения первого, второго и третьего максимальных чисел, используя значения None или аналогичные значения.
2⃣Пройдитесь по массиву, обновляя переменные первого, второго и третьего максимальных чисел, избегая дубликатов.
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!
}Ставь 👍 и забирай 📚 Базу знаний
