Рубрики
Без рубрики

День-12 наибольший номер по крайней мере дважды другие

Это заявление о проблеме является частью массивов и струн для карт IETCODE в рамках подзаголовки. Теги с Python, Challenge.

Это заявление о проблеме является частью карт и струн для карт IETCODE в рамках введения под заголовком к массивам.

Постановка задачи

В заданном целочисленном массиве Nums всегда есть ровно один самый большой элемент.

Найдите, является ли самый большой элемент в массиве, по крайней мере, вдвое больше, чем каждый другой номер в массиве.

Если это, верните указатель самого большого элемента, в противном случае return -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.

Примечание:

  1. Nums будет иметь длину в диапазоне [1, 50].
  2. Каждый номер [I] будет целым числом в диапазоне [0, 99].
Подход решения
  1. Найдите самый большой элемент и индекс крупнейшего элемента из массива.
  2. Итайте на массиве и проверьте, если в два раза больше всех других элементов меньше, чем наибольшее значение. Если это условие является ложным возвратом -1, остальное возвращает индекс самого большого элемента.
class Solution:
    def dominantIndex(self, nums: List[int]) -> int:
        largest_element = max(nums)
        result = nums.index(largest_element)
        for index, value in enumerate(nums):
            if (value != largest_element) and (largest_element < 2*value):
                result = -1

        return result
Учащиеся
  1. Сложность времени решения равно 0 (n)
  2. Космическая сложность 0 (1)

Оригинал: “https://dev.to/mridubhatnagar/day-12-largest-number-at-least-twice-of-others-3fj7”