Python中最多的两倍

假设我们有一个数字列表。我们必须检查最大数字是否比第二大数字大两倍以上。例如,如果列表类似于[3,9,6],则它将返回false,因为9不大于12(2乘以6)。当列表为[6,3,15]时,它将返回true,因为15大于12(2乘以6)。

为了解决这个问题,我们将遵循以下步骤-

  • 如果nums <2

    • 返回False

  • p_max:= nums [0]和nums [1]的最小值

  • c_max:= nums [0]和nums [1]的最大值

  • 对于范围在2到nums的i

    • 如果nums [i]> c_max,则

    • 除此以外,

    • p_max:= c_max

    • c_max:= nums [i]

    • p_max:= nums [i]

    • 如果nums [i]> p_max,则

    • 返回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