lintcode-394-硬币排成线】的更多相关文章

输入的n可以分为两种情况: 1. 如果n是3的倍数的话,不论A怎么拿B都可以拿(3-A拿的个数)来使其保持是3的倍数,他就一定能拿到最后一块,所以n是3的倍数的话B必胜 2. 如果n不是3的倍数的话,那么A就能够拿1或者2块使其变为3的倍数,就相当于B变成了第一种情况中的A,所以n不是3的倍数的话A必胜 AC代码: class Solution: """ @param: n: An integer @return: A boolean which equals to true…
题目 硬币排成线 II 有 n 个不同价值的硬币排成一条线.两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止.计算两个人分别拿到的硬币总价值,价值高的人获胜. 请判定 第一个玩家 是输还是赢? 样例 给定数组 A = [1,2,2], 返回 true. 给定数组 A = [1,2,4], 返回 false. 解题 动态规划.博弈论 坑死,看了好久 定义dp[i]表示从i到end能取到的最大值 当我们在i处,有两种选择: 1.若取values[i],对方可以取values[i+1…
题目 硬币排成线 有 n 个硬币排成一条线.两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止.拿到最后一枚硬币的人获胜. 请判定 第一个玩家 是输还是赢? 样例 n = 1, 返回 true. n = 2, 返回 true. n = 3, 返回 false. n = 4, 返回 true. n = 5, 返回 true. 挑战 O(1) 时间复杂度且O(1) 存储. 解题 两个人在一次拿的时候,当第一个人拿的是1 时,第二个人拿的就是2:当第一个人拿的是2时,第二个人拿的就是1…
LintCode 394: First Will Win 题目描述 有n个硬币排成一条线.两个参赛者轮流从右边依次拿走1或2个硬币,直到没有硬币为止.拿到最后一枚硬币的人获胜. 请判定 第一个玩家 是输还是赢? 样例 n = 1, 返回 true. n = 2, 返回 true. n = 3, 返回 false. n = 4, 返回 true. n = 5, 返回 true. Sat Feb 26 2017 思路 一般这种博弈的题目都是假设双方足够聪明,能够用最优的策略取得胜利的,看似很麻烦,实…
395-硬币排成线 II 有 n 个不同价值的硬币排成一条线.两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止.计算两个人分别拿到的硬币总价值,价值高的人获胜. 请判定 第一个玩家 是输还是赢? 样例 给定数组 A = [1,2,2], 返回 true. 给定数组 A = [1,2,4], 返回 false. 标签 动态规划 数组 博弈论 思路 参考 http://www.jianshu.com/p/42656455eefc dp[i] 表示从i到end 能拿到的最大值 一个明…
394-硬币排成线 有 n 个硬币排成一条线.两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止.拿到最后一枚硬币的人获胜. 请判定 第一个玩家 是输还是赢? 样例 n = 1, 返回 true. n = 2, 返回 true. n = 3, 返回 false. n = 4, 返回 true. n = 5, 返回 true. 挑战 O(1) 时间复杂度且O(1) 存储. 标签 数组 贪心 动态规划 博弈论 思路 参考 http://blog.csdn.net/wangyuquan…
变型:如果是最后拿走所有石子那个人输,则f[0] = true 394. Coins in a Line dp[n]表示n个石子,先手的人,是必胜还是必输.拿1个石子,2个石子之后都是必胜,则当前必败:拿1个石子,2个石子之后都是必败,则当前必胜:如果拿1个石子,2个石子之后有必败,则当前必胜. class Solution { public: /** * @param n: An integer * @return: A boolean which equals to true if the…
Description There are n coins in a line. Two players take turns to take one or two coins from right side until there are no more coins left. The player who take the last coin wins. Could you please decide the first player will win or lose? Example n…
366. 斐波纳契数列 中文 English 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... 样例 样例 1: 输入: 1 输出: 0 样例解释: 返回斐波那契的第一个数字,是0. 样例 2: 输入: 2 输出: 1 样例解释: 返回斐波那契的第二个数字是1. class Solution: "&qu…
LintCode 395: First Will Win 2 题目描述 有 n 个不同价值的硬币排成一条线.两个参赛者轮流从左边依次拿走 1 或 2 个硬币,直到没有硬币为止.计算两个人分别拿到的硬币总价值,价值高的人获胜. 请判定 第一个玩家 是输还是赢? 样例 给定数组 A = [1,2,2], 返回 true. 给定数组 A = [1,2,4], 返回 false. Sat Feb 26 2017 思路 一般这种博弈的题目都是假设双方足够聪明,能够用最优的策略取得胜利的,看似很麻烦,实际上…