Python 中至少是其他数字两倍的最大数字


假设我们有一个名为 nums 的整数数组,现在总是有一个最大元素。我们必须检查数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是这样,那么我们必须找到最大元素的索引,否则返回 -1。

因此,如果输入类似于 [3,6,1,0],则输出将为 1,因为 6 是最大数字,并且对于数组中每个其他数字 x,6 大于 x 的两倍。由于 6 的索引为 1,因此输出也为 1。

要解决此问题,我们将遵循以下步骤 -

  • maximum := nums 的最大值
  • 对于 i 从 0 到 nums 的大小,执行
    • 如果 nums[i] 等于 maximum,则
      • maxindex := i
    • 如果 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

更新于: 2020-07-04

362 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.