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

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

<시간/>

숫자 목록이 있다고 가정합니다. 가장 큰 숫자가 두 번째로 큰 숫자보다 2배 이상 큰지 확인해야 합니다. 예를 들어 목록이 [3, 9, 6]과 같으면 9가 12(2 x 6)보다 크지 않으므로 false를 반환합니다. 목록이 [6, 3, 15]이면 15가 12보다 크므로 true를 반환합니다(2 x 6).

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 숫자의 크기가 2보다 작으면
    • 거짓을 반환
  • p_max :=nums[0] 및 nums[1]의 최소값
  • c_max :=nums[0] 및 nums[1]의 최대값
  • 숫자 크기에서 범위 2의 i에 대해
    • nums[i]> p_max이면
      • nums[i]> c_max이면
        • p_max :=c_max
        • c_max :=nums[i]
      • 그렇지 않으면
        • p_max :=nums[i]
  • c_max 반환> p_max * 2

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

예시

class Solution:
   def solve(self, nums):
      if len(nums) < 2:
         return False
         p_max = min(nums[0], nums[1])
         c_max = max(nums[0], nums[1])
         for i in range(2, len(nums)):
            if nums[i] > p_max:
               if nums[i] > c_max:
                  p_max = c_max
                  c_max = nums[i]
               else:
                  p_max = nums[i]
         return c_max > p_max * 2
ob = Solution()
nums = [3,6,15]
print(ob.solve(nums))

입력

[3,6,15]

출력

None