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.