游戲輸贏

游戲說明

有一組數字,p1和p2輪流選擇,最后達到一種狀態定勝負。

用遞歸求解:
  1. p1開始游戲,遍歷所有p1可選的可能。
  2. 如果剩下的游戲狀態讓p2開始,都是導致p2贏,則p1失敗。
  3. 如果剩下的游戲狀態讓p2開始,有一個是p2失敗,則p1贏。
def game(初始狀態):
  for i in set(剩余所有狀態):
    if game(剩余所有狀態 - i) == False:
      return True
  # 遍歷完所有可能狀態,全為對手贏(True), 返回 輸(False)
  return False
例題:

https://leetcode.com/problems/can-i-win/#/description
https://leetcode.com/problems/predict-the-winner/#/description

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容