Сложность: easy
Вам дан целочисленный массив nums, в котором наибольшее целое число уникально. Определите, является ли наибольший элемент массива по крайней мере в два раза больше всех остальных чисел в массиве. Если да, то верните индекс самого большого элемента, в противном случае верните -1.
Пример:
Input: nums = [3,6,1,0]
Output: 1
👨💻 Алгоритм:
1⃣Найдите максимальный элемент в массиве и его индекс.
2⃣Проверьте, является ли этот максимальный элемент по крайней мере в два раза больше всех остальных элементов массива.
3⃣Если условие выполняется, верните индекс максимального элемента, иначе верните -1.
😎 Решение:
func dominantIndex(_ nums: [Int]) -> Int {
guard let maxVal = nums.max() else { return -1 }
let maxIndex = nums.firstIndex(of: maxVal)!
for num in nums {
if num != maxVal && maxVal < 2 * num {
return -1
}
}
return maxIndex
}Ставь 👍 и забирай 📚 Базу знаний