Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 최소 두 배의 가장 큰 수

<시간/>

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

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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