爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。

最初,黑板上有一个数字N 。在每个玩家的回合,玩家需要执行以下操作:

  • 选出任一x,满足0 < x < NN % x == 0
  • N - x 替换黑板上的数字N

如果玩家无法执行这些操作,就会输掉游戏。

只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。

示例1:
输入:2
输出:true
解释:爱丽丝选择 1,鲍勃无法进行操作。

示例2:
输入:3
输出:false
解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。

提示:

  • `1 <= N <= 1000
/**- @param {number} N- @return {boolean}*/
var divisorGame = function(N) {};

个人解法

某个大佬的思路:

  • 如果N是奇数,因为奇数的所有因数都是奇数,因此 N 进行一次 N-x 的操作结果一定是偶数,所以如果 a 拿到了一个奇数,那么轮到 b的时候,b拿到的肯定是偶数,这个时候 b 只要进行 -1, 还给 a一个奇数,那么这样子b就会一直拿到偶数,到最后b一定会拿到最小偶数2,a就输了。

  • 所以如果游戏开始时Alice拿到N为奇数,那么她必输,也就是false。如果拿到N为偶数,她只用 -1,让bob 拿到奇数,最后bob必输,结果就是true。

var divisorGame = function(N) {return N % 2 === 0;
};

★LeetCode(1025)——除数博弈(JavaScript)相关推荐

  1. leetcode - 1025. 除数博弈

    1025. 除数博弈 ------------------------------------------ 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个 ...

  2. LeetCode 1025. 除数博弈(动态规划)

    1. 题目 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N ...

  3. leetcode —— 1025. 除数博弈

    爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == ...

  4. Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game)

    Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game) 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需 ...

  5. 1025. 除数博弈

    2020.7.24 LeetCode 题目描述 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 ...

  6. 力扣1025.除数博弈

    题目描述 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局.最初,黑板上有一个数字 N .在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % ...

  7. [LeetCode]动态规划求解博弈问题

    博弈论是有趣又有用的知识,可以用来预测在特定的规则下,人们会做出怎样的行为,又会导致怎样的结果.利用博弈论来指导人们的行事法则甚至商业操作,比如著名的囚徒困境就被很好的利用在了商业竞争上.同样,Lee ...

  8. 一个有趣的博弈或推理游戏——除数博弈(动态规划与归纳法)

    除数博弈 除数博弈(Divisor Game)是我在leetcode上遇到的一个题目,它的描述如下: Alice and Bob take turns playing a game, with Ali ...

  9. [Leetcode][第1025题][JAVA][除数博弈][数学][递推]

    [问题描述][中等] [解答思路] 1. 数学证明 找规律 时间复杂度:O(1) 空间复杂度:O(1) 2. 递推 时间复杂度:O(N) 空间复杂度:O(1) class Solution {publ ...

最新文章

  1. SAP CAR 的主要优势
  2. python自学书籍推荐豆瓣-想学python,请问有没好的书籍推荐?
  3. Struts2 Result详解
  4. Linux的磁盘满了
  5. C# 功能完整的单表增删改查程序
  6. Scala的隐式参数、隐式值、隐式对象
  7. P4097 [HEOI2013]Segment 李超线段树
  8. java remove map_Java HashMap remove()方法
  9. qt撤销与回退_Git撤销某次分支的合并Merge
  10. 重温经典:Windows1.0系统体验和尝试自己编写Windows1.0系统
  11. 中标麒麟如何安装mysql_中标麒麟操作系统安装mysql5.7.21
  12. 服务器上不存在该种子文件,风行为什么点击种子链接总会弹出“找不到文件关联或无效的菜单句柄”...
  13. 记一次zip压缩包打开异常问题
  14. Flume avro client和hdfs sink 完成自定义目录文件收集
  15. 发生系统错误 67,找不到网络名
  16. 【工业视觉】Halcon常用教程
  17. C++ 炼气期之基本结构语法中的底层逻辑
  18. 最小二乘法解的矩阵形式推导
  19. kali linux怎么远程桌面,适用于kali linux的远程桌面开启方法(从windows xp 远程登录到kali linux )...
  20. 第9章第19节:继续商业模式幻灯片的制作 [PowerPoint精美幻灯片实战教程]

热门文章

  1. [猜你喜欢]冠军 yes,boy! 分享 | 推荐系统也可以很简单 做个记录 以后方便学习
  2. Git之同一台电脑如何连接多个远程仓库
  3. 桂电在linux、Mac OS环境下使用出校器(支持2.14)
  4. Bash 一些变量的操作
  5. 卢松松分享独立博客运营推广经验
  6. 详解忘记linux root用户密码的措施
  7. 程序人生--一个程序员对学弟学妹建议
  8. bae php微信配置,使用BAE3.0搭建微信开发环境
  9. Spring-tx-TransactionStatus接口(savepoint)
  10. Mybatis-SpringBoot集成/配置