nums라는 정수 배열이 있다고 가정하면 이제 항상 정확히 하나의 가장 큰 요소가 있습니다. 배열의 가장 큰 요소가 배열의 다른 모든 숫자의 최소 두 배인지 확인해야 합니다. 그렇다면 가장 큰 요소의 인덱스를 찾아야 하고, 그렇지 않으면 -1을 반환합니다.
따라서 입력이 [3,6,1,0]과 같으면 출력은 1이 됩니다. 6이 가장 큰 숫자이고 배열 x의 다른 모든 숫자에 대해 6은 x의 두 배 이상이기 때문입니다. . 6의 인덱스가 1이므로 출력도 1입니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 최대 :=최대 숫자
- 0~숫자 크기 범위의 i에 대해
- nums[i]가 최대값과 같으면
- maxindex :=나
- nums[i]가 maximum 및 maximum <2*(nums[i])와 같지 않으면
- 반환 -1
- nums[i]가 최대값과 같으면
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def dominantIndex(self, nums): maximum = max(nums) for i in range(len(nums)): if nums[i] == maximum: maxindex = i if nums[i] != maximum and maximum < 2*(nums[i]): return -1 return maxindex ob = Solution() print(ob.dominantIndex([3, 6, 1, 0]))
입력
[3, 6, 1, 0]
출력
1