Легкий
Проблема
В данном целочисленном массиве nums
всегда есть ровно один самый большой элемент.
Найдите, является ли самый большой элемент в массиве хотя бы в два раза больше, чем любое другое число в массиве.
Если это так, верните индекс самого большого элемента, иначе верните -1.
Пример 1:
Input: nums = [3, 6, 1, 0] Output: 1 Explanation: 6 is the largest integer, and for every other number in the array x, 6 is more than twice as big as x. The index of value 6 is 1, so we return 1.
Пример 2:
Input: nums = [1, 2, 3, 4] Output: -1 Explanation: 4 isn't at least as big as twice the value of 3, so we return -1.
Примечание.
nums
будет иметь длину в диапазоне[1, 50]
.- Каждое
nums[i]
будет целым числом в диапазоне[0, 99]
.
Решение
Повторите nums
и найдите самый большой и второй по величине элементы. Затем просто сравните самый большой со вторым по величине, умножив 2.
Сложность
Очевидно, что итерация занимает всего O(n) время и требует только O(1) дополнительного пространства.