LeetCode 294. 翻转游戏 II(记忆化递归)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 294. 翻转游戏 II(记忆化递归)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
你和朋友玩一個叫做「翻轉游戲」的游戲,
游戲規則:給定一個只有 + 和 - 的字符串。
你和朋友輪流將 連續 的兩個 "++" 反轉成 "--"。
當一方無法進行有效的翻轉時便意味著游戲結束,則另一方獲勝。
請你寫出一個函數來判定起始玩家是否存在必勝的方案。
示例: 輸入: s = "++++" 輸出: true 解析: 起始玩家可將中間的 "++" 翻轉變為 "+--+" 從而得勝。 延伸: 請推導你算法的時間復雜度。來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/flip-game-ii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution {unordered_map<string,bool> m; public:bool canWin(string s) {if(s.size() <= 1) return false;if(m.count(s)) return m[s];string t;for(int i = 0; i < s.size()-1; ++i){if(s[i]=='+' && s[i+1]=='+'){t = s;t[i]=t[i+1]='-';if(!canWin(t)){m[s] = true;return true;}}}m[s] = false;return false;} };40 ms 11.8 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 294. 翻转游戏 II(记忆化递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用GRU单元的RNN模型生成唐诗
- 下一篇: LeetCode 第 206 场周赛(7