LeetCode 294. Flip Game II
来源:互联网 发布:总裁高级研修班知乎 编辑:程序博客网 时间:2024/06/07 12:04
Problem Description:
You are playing the following Flip Game with your friend: Given a string that contains only these two characters: + and -, you and your friend take turns to flip two consecutive “++” into “–”. The game ends when a person can no longer make a move and therefore the other person will be the winner.
Write a function to determine if the starting player can guarantee a win.
For example, given s = “++++”, return true. The starting player can guarantee a win by flipping the middle “++” to become “+–+”.
Follow up:
Derive your algorithm’s runtime complexity.
思路:
1. 对于n长的string,如何判断是否能win呢?简单直接方法是,遍历backtracking,复杂度:
T(N) = (N-2) * T(N-2) = (N-2) * (N-4) * T(N-4) … = (N-2) * (N-4) *
(N-6) * … ~ O(N!!)
bool canWin(string&s) { for(int i=0;i<s.size()-2;i++){ if(s[i]=='+'&&s[i+1]=='+'){ s[i]='-';s[i+1]='-'; bool win=canWin(s); s[i]='+';s[i+1]='+'; if(!win) return true; } } return false;}
- 除了简单粗暴的方法,还有利用game theory的方法,参考https://discuss.leetcode.com/topic/27282/theory-matters-from-backtracking-128ms-to-dp-0ms 和 http://www.1point3acres.com/bbs/thread-137953-1-1.html
- LeetCode 294. Flip Game II
- Leetcode 293. Flip Game & 294. Flip Game II
- *LeetCode-Flip Game II
- [leetcode] 294. Flip Game II 解题报告
- [Leetcode] 294. Flip Game II 解题报告
- 294. Flip Game II
- LeetCode 294. Flip Game II(反转游戏II)
- Leetcode 294. Flip Game II (回溯,记忆化)
- LeetCode 题解(277) :Flip Game II
- [LeetCode294] Flip Game II
- [LeetCode294]Flip Game II
- [leetcode294]Flip Game II
- [LeetCode294] Flip Game II
- Flip Game II
- Flip Game II
- [leetcode flip game ii]sprague–grundy theorem
- [LeetCode 293] Flip Game
- [leetcode 293] Flip Game
- Spark Streaming如何使用checkpoint容错
- @Temporal JPA 映射时间(Temporal)类型
- java中HashMap和HashTable的区别总结
- 24、Power Query-数学运算的应用(统计男女人数)
- Play!Framework学习笔记:初识Play
- LeetCode 294. Flip Game II
- Error:(149, 22) 错误: 需要常量表达式
- 移动端布局学习小结
- ArcGIS Viewer for Flex 配置文件解析
- linux运维学习第四课
- java抽象类和接口的区别总结
- Leetcode 463. Island Perimeter
- c++ 一个经典的makefile实例 g++ (8.1是目标文件)
- 虚析构函数