用 Python 編寫的找到陣列移除遊戲中獲勝者的程式


假設 Amal 和 Bimal 正在玩一個遊戲,他們有一個帶有數字的陣列 A。遊戲規則如下

  • 總是由 Bimal 先開始
  • 在每一回合,一名玩家從陣列中刪除最大元素,並且所有出現在已刪除元素右邊的其他元素也將被刪除。
  • 他們輪流進行遊戲。
  • 移除所有剩餘元素的玩家獲勝。

因此,如果輸入類似 nums = [5,2,6,3,4],那麼輸出將是 Amal,因為一開始 Bimal 將移除 [6,3,4],因此陣列將變為 [5,2],然後 Amal 將移除所有元素,因此他將成為贏家。

要解決這個問題,我們將遵循以下步驟——

  • maximum := -1
  • count := 0
  • 對於 nums 中的每個 a,執行
    • 如果 a > maximum 非零,則
      • count := count + 1
      • maximum := a
  • 如果 count 模 2 等於 0,則
    • 返回 "Amal"
  • 返回 "Bimal"

示例

讓我們看看以下實現以獲得更好的理解——

def solve(nums):
   maximum = -1
   count = 0
   for a in nums:
      if a > maximum:
         count += 1
         maximum = a
   if count % 2 == 0:
      return "Amal"
   return "Bimal"

nums = [5,2,6,3,4]
print(solve(nums))

輸入

[5,2,6,3,4]

輸出

Amal

更新於: 2021 年 10 月 23 日

169 次瀏覽

助力你的 職業生涯

完成課程並獲得證書

開始
廣告
© . All rights reserved.