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

pythonserver side programmingprogramming更新于 2023/11/9 22:47:00

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

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

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

  • 最大值 := nums 的最大值
  • 对于范围为 0 到 nums 大小的 i,执行
    • 如果 nums[i] 与最大值相同,则
      • maxindex := i
    • 如果 nums[i] 与最大值不同且最大值 < 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

相关文章