394.Coins in a Line-硬币排成线(中等题)
来源:互联网 发布:郑州做软件开发 编辑:程序博客网 时间:2024/05/21 10:22
硬币排成线
题目
有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。
请判定 第一个玩家 是输还是赢?
样例
n = 1, 返回 true.
n = 2, 返回 true.
n = 3, 返回 false.
n = 4, 返回 true.
n = 5, 返回 true.挑战
O(1) 时间复杂度且O(1) 存储。
题解
从博弈论的角度分析,在第二个玩家不犯错误的前提下,第一个玩家如果想赢,就需要保证当他去拿硬币的时候台面上的硬币数不等于3的倍数,否则必输。
public class Solution { /** * @param n: an integer * @return: a boolean which equals to true if the first player will win */ public boolean firstWillWin(int n) { return (n%=3) != 0; }}
Last Update 2016.11.13
0 0
- 394.Coins in a Line-硬币排成线(中等题)
- 395.Coins in a Line II-硬币排成线 II(中等题)
- lintcode 中等题:Coins in Line II 硬币排成线 II
- lintcode coins-in-a-line 硬币排成线
- lintcode coins-in-a-line-ii 硬币排成线ii
- lintcode Coins in Line II 硬币排成线 II
- 【LintCode】Coins in a Line 硬币排成行
- Coins in a Line
- coins in a line
- Coins in a Line
- LeetCode题-coins in a line
- lintcode:Coins in a Line
- [LintCode]Coins in a Line
- #394 Coins in a Line
- **[Lintcode]Coins in a Line
- Coins in a line II lintcode
- [LintCode] Coins in a line II
- #395 Coins in a Line II
- day11.13
- 牛客网刷题之正则表达式匹配
- 成员函数调用
- 计算经纬度、距离、方位角
- QT Creator基础设置
- 394.Coins in a Line-硬币排成线(中等题)
- Part 83 - RegularExpression attribute in asp.net mvc
- android知识回顾-----单向链表
- Part 84 - Compare attribute in asp.net mvc
- android知识回顾-----开源框架-----Volley
- QT/C++ 下调用python自定义模块
- dom级别
- Part 85 - Enable client side validation in asp.net mvc
- java泛型