用 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
- 如果 a > maximum 非零,則
- 如果 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP