【LeetCode击败99%+】Nim 游戏

题目

  • 你和你的朋友,两个人一起玩 Nim 游戏:

桌子上有一堆石头。
你们轮流进行自己的回合,你作为先手。
每一回合,轮到的人拿掉 1 - 3 块石头。
拿掉最后一块石头的人就是获胜者。
假设你们每一步都是最优解。
请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。
如果可以赢,返回 true;否则,返回 false 。

加粗样式示例 1:

输入:n = 4
输出:false 
解释:如果堆中有 4 块石头,那么你永远不会赢得比赛;
     因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块石头总是会被你的朋友拿走。

示例 2:

输入:n = 1
输出:true

示例 3:

输入:n = 2
输出:true

提示:

1 <= n <= 2^31 - 1

代码

class Solution {
    public boolean canWinNim(int n) {
        return n % 4 != 0;
    }
}

结果

用时内存
击败100.00%击败92.68%

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/nim-game
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

【每周更新:Java数据结构与算法】

数据结构

【数据结构 1】顺序表及其Java实现
【数据结构 2】单向链表及其Java实现
【数据结构 3】双向链表及其Java实现
【数据结构 4】栈及其Java实现
【数据结构 5】队列及其Java实现
【数据结构 6】符号表及其Java实现(使用链表实现)
【数据结构 7】二叉查找树及其Java实现
【数据结构 8】并查集及其Java实现(待更新)
【数据结构 9】优先队列及其Java实现(待更新)
【数据结构 10】无向图及其Java实现(深度or广度优先搜索、路径查找)
【数据结构 11】有向图及其Java实现(拓扑排序)(待更新)
【数据结构 12】加权无向图及其Java实现(最小生成树【贪心】、【Prim】、【Kruskal】)(待更新)
【数据结构 13】加权有向图及其Java实现(最短路径Dijstra)(待更新)


排序算法

【排序算法系列 1】冒泡排序(Bubble Sort)
【排序算法系列 2】选择排序
【排序算法系列 3】 插入排序
【排序算法系列 4】 高级排序——希尔排序(插入排序的改进)
【排序算法系列 5】 高级排序——归并排序
【排序算法系列 6】 高级排序——归并排序(由冒泡排序改进)
【排序算法系列 6】堆排序(待更新)


LeetCode击败99%+

【LeetCode击败99%+】罗马数字转整数
【LeetCode击败99%+】搜索插入位置
【LeetCode击败99%+】加一
【LeetCode击败99%+】搜索二维矩阵
【LeetCode击败99%+】二叉树的前序遍历
【LeetCode击败99%+】存在连续三个奇数的数组
【LeetCode击败99%+】矩阵对角线元素的和
【LeetCode击败99%+】相同的树
【LeetCode击败99%+】删除排序链表中的重复元素
【LeetCode击败99%+】合并两个有序链表
【LeetCode击败99%+】生成杨辉三角
【LeetCode击败99%+】二叉树的最大深度
【LeetCode击败99%+】将有序数组转换为二叉搜索树
【LeetCode击败99%+】平衡二叉树
【LeetCode击败99%+】二叉树路径总和
【LeetCode击败99%+】杨辉三角的第 k 行
【LeetCode击败99%+】买卖股票的最佳时机
【LeetCode击败99%+】数组只出现一次的数字
【LeetCode击败99%+】环形链表(使用快慢指针检测链表中是否有环)
【LeetCode击败99%+】Excel列表名称和对应正整数的相互转换
【LeetCode击败99%+】二叉树的右视图
【LeetCode击败99%+】快乐数
【LeetCode击败99%+】移除链表指定元素
【LeetCode击败99%+】用队列实现栈
【LeetCode击败99%+】翻转二叉树
【LeetCode击败99%+】判断某整数是否2的幂
【LeetCode击败99%+】删除链表中的节点
【LeetCode击败99%+】非负整数各位相加
【LeetCode击败99%+】丑数
【LeetCode击败99%+】丢失的数字
【LeetCode击败99%+】第一个错误的版本
【LeetCode击败99%+】Nim 游戏

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值