电子商务网站建设ppt模板下载,html简单广告代码,wordpress首页登录,网址怎么做快捷方式目录链接#xff1a;
力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目#xff1a;
https://github.com/September26/java-algorithms 原题链接#xff1a;力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 描述#xff1a;
你和你的朋… 目录链接
力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目
https://github.com/September26/java-algorithms 原题链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台 描述
你和你的朋友两个人一起玩 Nim 游戏
桌子上有一堆石头。你们轮流进行自己的回合 你作为先手 。每一回合轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。
假设你们每一步都是最优解。请编写一个函数来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢返回 true否则返回 false 。 示例 1
输入n 4
输出false
解释以下是可能的结果:
1. 移除1颗石头。你的朋友移走了3块石头包括最后一块。你的朋友赢了。
2. 移除2个石子。你的朋友移走2块石头包括最后一块。你的朋友赢了。
3.你移走3颗石子。你的朋友移走了最后一块石头。你的朋友赢了。
在所有结果中你的朋友是赢家。示例 2
输入n 1
输出true示例 3
输入n 2
输出true提示
1 n 231 - 1 解题思路
这题本来是一道动态规划的题目以先下的为准dp[i]代表第i位先下的人赢或者输。
dp[1],dp[2],dp[3]都是trued[4]为false5,6,7为true8为false。
跟明显%40的位置先下的会输。 代码
class Solution {
public:bool canWinNim(int n) {return n%4!0;}
};