博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode Nim game
阅读量:6296 次
发布时间:2019-06-22

本文共 988 字,大约阅读时间需要 3 分钟。

刚注册了leetcode,推荐的第一题就是Nim Game。

You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones.

Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap.

For example, if there are 4 stones in the heap, then you will never win the game: no matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend.

最开始我的想法是,既然第一次是我拿,目标是最后一次还是我拿,而且剩下的石子是1个,2个或者3个这种情况,后来写了一个,我发现自己没有考虑清楚,对手也是‘clever’的,所以没跑对。去查了一下。代码简单到不行。

class Solution {  public:      bool canWinNim(int n) {          return (n%4==0)? false : true;      }  };   

这是博弈论的题目,就是4个石头的情况一定是必败的,所以假如有8个石子,我先拿,无论我拿多少个,对手都会尽可能让我陷入4个石子的情况。以此类推,只要是4的整数倍的石子都是必败的。

转载于:https://www.cnblogs.com/LUO77/p/4885141.html

你可能感兴趣的文章
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>
高德开放平台开放源代码 鼓励开发者创新
查看>>
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器
查看>>
阿里感悟(十八)- 应届生Review
查看>>
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>
spring boot集成mongodb最简单版
查看>>
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>