算法每日一题: 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;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯每日一题-----数位dp练习

题目 链接 参考代码 写了两个&#xff0c;一个是很久以前写的&#xff0c;一个是最近刚写的&#xff0c;很久以前写的时候还不会数位dp所以写了比较详细的注释&#xff0c;这两个代码主要是设置了不同的记忆数组&#xff0c;通过这两个代码可以理解记忆数组设置的灵活性。 im…

redis源码之:集群创建与节点通信(1)

一、创建集群与添加节点&#xff08;meet&#xff09; 通过redis源码之&#xff1a;redis-cli 集群命令发现&#xff0c;不管是新建cluster集群还是往集群里添加新节点&#xff0c;都是通过meet指令完成&#xff0c;假设有ABCD四个节点&#xff0c;新建集群&#xff1a;redis-…

vue3父子组件相互调用方法(setup)

一、父组件调用子组件方法 子组件需要使用defineExpose对外暴露方法&#xff0c;父组件才可以调用&#xff01; 1.父组件 <template><button click"getChild">触发子组件方法</button><!-- 一&#xff1a;定义 ref --><Child ref"…

Vue学习笔记之组件基础

1、组件的定义 一般将 Vue 组件定义在一个单独的 .vue 文件中&#xff0c;称做单文件组件&#xff1b;当然也可以将组件直接定义在js文件中&#xff0c;如下js代码&#xff0c;定义一个组件BlogPost&#xff0c;通过props定义对外暴露属性title&#xff0c;父组件传递title&am…

分享62个节日PPT,总有一款适合您

分享62个节日PPT&#xff0c;总有一款适合您 62个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1mheNtIvXknGHse44FW7nOw?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

api接口是什么意思,api接口该如何防护呢?

API接口&#xff1a;应用程序与服务之间的接口 什么是API接口 API是应用程序接口的缩写&#xff0c;指的是能够让不同的应用程序之间交换数据的一种方式。一个API接口就是应用程序与服务之间的接口&#xff0c;它定义了服务提供的功能和数据&#xff0c;以及应用程序如何访问这…

【工具】使用asciidoctor-pdf将adoc文件转换成pdf

文章目录 配置方法配置gem镜像源安装工具 asciidoctor-pdf 将adoc转换成pdfreference 配置方法 使用gem镜像源&#xff0c; 安装工具 asciidoctor-pdf 配置gem镜像源 查找默认源 gem sources移除默认源 gem sources --remove https://rubygems.org/添加新镜像源 gem source…

2023年全球软件架构师峰会(ArchSummit上海站):核心内容与学习收获(附大会核心PPT下载)

微服务架构是当今软件架构的主流趋势之一。随着云计算和分布式系统的普及&#xff0c;越来越多的企业开始采用微服务架构来构建他们的应用。微服务架构可以将一个大型的应用拆分成多个小型的服务&#xff0c;每个服务都独立部署、独立运行&#xff0c;并通过轻量级的通信协议进…

非常好看的CSS加载中特效,引用css文件既可用

非常好看的CSS加载中特效 demo效果源码&#xff1a; <!DOCTYPE html5> <head><link rel"stylesheet" type"text/css" href"demo.css"/><link rel"stylesheet" type"text/css" href"loaders.css&…

【Qt解决】QIcon图标不显示以及LNK2019: 无法解析的外部符号问题

一句话解决 qmake重新构建&#xff0c;然后build&#xff0c;然后run 原因剖析 QIcon图标不显示 首先确保 qrc 文件已经添加对应图标文件&#xff0c;但是仍然不显示是因为没有编译新文件 LNK2019: 无法解析的外部符号 明明已经定义的槽函数&#xff0c;还是报这个错&…

开发板有线连主机,主机无线上网,开发板上网

网络配置&#xff1a; 以太网4连接开发板 wlan设置共享 vmwave需要禁用&#xff08;否则占用共享地址192.168.137.1&#xff09; 开发板 /etc/netplan 目录下&#xff1a;xx.yaml 00-installer-config.yaml /etc/resolv.conf route -n ifconfig 可以ping主机 可ping自己…

SpringBoot中的WebMvcConfigurer

SpringBoot中的WebMvcConfigurer 一、WebMvcConfigurer二、页面跳转控制器三、数据格式化1.Formatter\<T>2.内容转换器 四、拦截器 一、WebMvcConfigurer WebMvcConfigurer 作为配置类&#xff0c;采用 JavaBean 的形式来代替传统的 XML 配置文件形式&#xff0c;进而针…

SpringSecurity(18)——OAuth2授权码管理

AuthorizationCodeServices public interface AuthorizationCodeServices {//为指定的身份验证创建授权代码。String createAuthorizationCode(OAuth2Authentication authentication);//使用授权码。OAuth2Authentication consumeAuthorizationCode(String code)throws Invali…

C/C++实现无序入参的命令解析工具

C/C实现无序入参的命令解析工具 1 实现思路2 主要功能3 效果展示3.1 直接运行代码图3.2help命令执行效果图3.3命令行执行命令解析效果图 4 代码实现5 代码下载 1 实现思路 基本介绍&#xff1a; 思路来源于atlas,atc(模型转换工具)&#xff0c;该工具对命令支持众多&#xff0…

机器学习的整个流程

机器学习的整个流程定义了数据科学团队执行以创建和交付机器学习模型的工作流。此外&#xff0c;机器学习流程还定义了团队如何协作合作&#xff0c;以创建最有用的预测模型。 机器学习high level的流程 机器学习流程的关键步骤包括问题探索&#xff08;Problem Exploration&a…

幻兽帕鲁服务器怎么搭建?Palworld多人联机教程

玩转幻兽帕鲁服务器&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

http伪造本地用户字段系列总结

本篇记录了http伪造本地用户的多条字段&#xff0c;便于快速解决题目 用法举例&#xff1a; 直接把伪造本地用户的多个字段复制到请求头中&#xff0c;光速解决部分字段被过滤的问题。 Client-IP: 127.0.0.1 Forwarded-For-Ip: 127.0.0.1 Forwarded-For: 127.0.0.1 Forwarded…

(4)【Python数据分析进阶】Machine-Learning模型与算法应用-回归、分类模型汇总

线性回归、逻辑回归算法应用请参考: https://codeknight.blog.csdn.net/article/details/135693621https://codeknight.blog.csdn.net/article/details/135693621本篇主要介绍决策树、随机森林、KNN、SVM、Bayes等有监督算法以及无监督的聚类算法和应用PCA对数据进行降维的算法…

CSS的Day05(浮动+flex布局)

跟着黑马程序员的课&#xff0c;稍稍对CSS的了解 常见的显示模式&#xff1a;行内、块级、行内块 在HTML中&#xff0c;标准流也称为文档流或普通流&#xff0c;是指元素按照其在HTML文档中的出现顺序依次排列的方式。在标准流中&#xff0c;元素会自动占据父容器的空间&#…

编程实例分享,麻将馆计时方法计费系统,棋牌室计时计费管理系统软件试用版教程

编程实例分享&#xff0c;麻将馆计时方法计费系统&#xff0c;棋牌室计时计费管理系统软件试用版教程 一、前言 以下教程以 佳易王棋牌计时计费管理系统软件V17.9为例说明 1、恢复上次状态&#xff1a;在突然停电或非正常关机情况下&#xff0c;再次打开软件&#xff0c;可以…