算法每日一题: Nim游戏 | 找规律
哈哈,大家好,我是星恒,今天的每日一题真开心,连做了3天牢,终于ak了一道,太不容易了
这道题其实就是找规律,刚开始我还以为是动归,但是列举了不少例子之后,发现有自己直接的规律,ok,直接通过
期待大家和我有一样的体验哈!让我们来看一看吧!
题目:leetcode 292
你和你的朋友,两个人一起玩 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
分析:
这道题的本质就是找规律,大家多列举几个例子,其实答案就出来啦
规律枚举在题解代码中写出:
题解:
/*找规律n = 0 先手必输n = 1 先手全拿走 后手必输n = 2 先手全拿走 后手必输n = 3 先手全拿走 后手必输n = 4 先手无论怎么拿 都会剩下1或2或3 先手必输n = 5 先手拿走1个给后手制造n == 4 后手不管怎么拿,都不会造出4来 后手必输n = 6 先手拿走2个给后手制造n == 4 后手不管怎么拿,都不会造出4来 后手必输n = 7 先手拿走3个给后手制造n == 4 后手不管怎么拿,都不会造出4来 后手必输n = 8 先手无论怎么拿 后手必能制造出4来 先手必输...
*/
class Solution {public boolean canWinNim(int n) {if (n % 4 == 0) {return false;} return true;}
}
相关文章:
算法每日一题: Nim游戏 | 找规律
哈哈,大家好,我是星恒,今天的每日一题真开心,连做了3天牢,终于ak了一道,太不容易了 这道题其实就是找规律,刚开始我还以为是动归,但是列举了不少例子之后,发现有自己直接…...
分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别
分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别 目录 分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现G…...
Dockerfile保留字
目录 一、Dockerfile保留字是什么? 二、Docker构建流程 1. 从基础镜像运行容器 2. 执行指令并修改容器 3. 提交新的镜像层 4. 基于新镜像运行新容器 5. 执行下一条指令 6. 循环执行指令 7. 所有指令执行完成 三、保留字 1. FROM 使用基础镜像作为起点 2.…...
Linux的7个运行级别
目录 1、有那7个运行级别? 2、那么如何查看运行级别呢? 3、那么我想临时切换运行级别? 4、那么我想修改配置文件中的运行级别呢? 1、有那7个运行级别? 0:停机状态。系统默认运行级别不能设置为0,否则系统不能正常启动&a…...
Linux期末总复习( 详解 )
文章目录 一、选择题二、填空题三、简答题四、操作题 一、选择题 1.在创建Linux分区时,一定要创建( D )两个分区 A. FAT/NTFS B. FAT/SWAP C. NTFS/SWAP D.SWAP/根分区 2.在Red Hat Linux 9 中,系统默认的…...
【Linux系统化学习】进程等待
目录 进程等待 进程等待的必要性 进程等待的方法 wait方法 等待一个进程(阻塞等待) waitpid方法 任意等待多个进程(阻塞等待) 父进程获取子进程的退出信息 非阻塞轮询等待 进程等待 进程等待的必要性 之前讲过,子进程退…...
前端学习笔记 | HTML5+CSS3静态网页制作的技巧(持续更新)
注:本文的css样式均使用less写法 1、字体居中 (1)先text-align:center;行内元素水平居中 (2)再line-heigh:(盒子高度);行内元素垂直居中 text-align: center;line-height: ( 30 / vw ); 2、盒子居中 情景1&#…...
docker安装-centos
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10 卸载旧版本Docker sudo yum remove docker \ docker-common \ docker-selinux \ docker-engine使用yum安装 yum 更新到最新版本: sudo yum update执行以下命令安装依赖包: sudo yum…...
Redis入门指南
文章目录 Redis概述Redis基本数据类型Redis与MySQL的区别以及使用场景如何保持双写一致性(缓存一致性)1. 延迟双删2. 分布式锁(强一致性时使用)3. 中间件 Redis持久化机制RDB(redis database)AOF࿰…...
K8s之configMap
1. 概述 1.1 什么是configMap 1.1 什么是configMap configMap是Kubernetes中的一种资源对象,用于存储配置数据。它可以包含键值对,也可以包含来自文件的配置数据。configMap的作用是将配置数据与应用程序的容器分离,使得配置可以在不重…...
提高 NFS Azure 文件共享性能
本文内容 适用于增加预读大小以提高读取吞吐量Nconnect另请参阅 本文介绍如何提高 NFS Azure 文件共享的性能。 适用于 展开表 文件共享类型SMBNFS标准文件共享 (GPv2)、LRS/ZRS 标准文件共享 (GPv2)、GRS/GZRS 高级文件共享 (FileStorage)、LRS/ZRS 增加预读大…...
【Django-ninja】使用schema
在Django Ninja中,"schema"主要是指帮助描述和规范你的API的工具,以便系统能够自动生成文档并提供验证。通俗地说,它有两个主要作用: API文档生成器: Schema 让 Django Ninja 能够自动生成互动式的API文档。…...
【TCP/IP】用户访问一个购物网站时TCP/IP五层参考模型中每一层的功能
当用户访问一个购物网站时,网络上的每一层都会涉及不同的协议,具体网络模型如下图所示。 以下是每个网络层及其相关的协议示例: 物理层:负责将比特流传输到物理媒介上,例如电缆或无线信号。所以在物理层,可…...
Unity 开发注意事项
1. 空Unity消息 Unity消息被运行时事件调用,即使消息体为空也会被调用。因此,删除空消息避免不必要的处理。 例如: using UnityEngine;class Camera : MonoBehaviour {private void FixedUpdate(){}private void Foo(){} } 应该删除未使用…...
[Unity Sentis] Unity Sentis 详细步骤工作流程
文章目录 1. 导入模型文件支持的模型创建运行时模型导入错误 2. 为模型创建输入将数组转换为张量创建多个输入进行操作 3. 创建一个引擎来运行模型创建一个Worker后端类型 4. 运行模型5. 获取模型的输出获取张量输出多个输出打印输出 1. 导入模型文件 要导入 ONNX 模型文件&am…...
力扣144 二叉树的前序遍历 Java版本
文章目录 题目描述递归方法代码 非递归方法代码 题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root [] 输出…...
《Vue3 基础知识》 使用 GoGoCod 升级到Vue3+ElementPlus 适配处理
此篇为 《Vue2ElementUI 自动转 Vue3ElementPlus(GoGoCode)》 的扩展! Vue3 适配 Vue3 不兼容适配 Vue 3 迁移指南 在此,本章只讲述项目或组件库中遇到的问题; Vue3 移除 o n , on, on&#…...
c#string方法对比
字符串的截取匹配操作在开发中非常常见,比如下面这个示例:我要匹配查找出来字符串数组中以“abc”开头的字符串并打印,我下面分别用了两种方式实现,代码如下: using System; namespace ConsoleApp23{ class Progra…...
Electron实战(一):环境搭建/Hello World/打包exe
文章目录 Electron安装Node.jsNodeJs推荐配置开始Electron项目创建index.js文件创建src目录运行打包生成exe生成安装包踩坑 下一篇Electron实战(二):将Node.js和UI能力(app/BrowserWindow/dialog)等注入html Electron Electron是一个使用JavaScript, HT…...
【C++】运算符重载详解
💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 1. 为什么需要运算符重载 2. 运算符重载概念 3. 运算符重载示例 3.1 运算符重载 3.2 >或<运算符 4. 运算符重…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
