原题链接:https://leetcode-cn.com/problems/divisor-game/

1、动态规划

dp[i]表示N=i时,alice先手的胜负

状态转移

//状态转移中,dp[i]表示alice先手的输赢,dp[i-j]则表示alice先手拿走j之后的输赢,也是bob此时先手的输赢
dp[i]=true;  if dp[i-j]==false

代码:

bool divisorGame(int N) {vector<bool> dp(N+1,false);if(N==2) return true;//若N=2或3,直接输出A的输赢if(N==3) return false;dp[2]=false;//为了后面的状态转移,这里表示当N=2或3时,bob先手的输赢dp[3]=true;for(int i=4;i<=N;i++){for(int j=1;j<i;j++){if(i%j==0&&!dp[i-j]){dp[i]=true;break;} }}return dp[N];}

2、数学

本质:谁轮到N=2就会赢
如果N为奇数,alice只能选1,bob一直面临偶数的情况,bob稳赢
如果N为偶数,alice只需一直选1,bob一直面临都是奇数的情况,alice稳赢
所以判断N奇偶即可

bool divisorGame(int N) {return N%2==0;
}

leetcode算法题--除数博弈★相关推荐

  1. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  2. LeetCode算法题-Reverse Linked List(Java实现)

    这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...

  3. LeetCode算法题-Convert a Number to Hexadecimal(Java实现)

    这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...

  4. leetcode算法题--零钱兑换

    原题链接:https://leetcode-cn.com/problems/coin-change/ 相关题目:leetcode算法题–完全平方数★ 动态规划 dp[i] i从0到amount,dp[ ...

  5. leetcode算法题-- 买卖股票的最佳时机

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 这类股票题目请见leetcode算法题–最佳买卖股票时机含 ...

  6. leetcode算法题--买卖股票的最佳时机 II

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...

  7. leetcode算法题--买卖股票的最佳时机含手续费

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...

  8. leetcode算法题--完全平方数★

    原题链接:https://leetcode-cn.com/problems/perfect-squares/ 相关题目:leetcode算法题–零钱兑换 1.回溯法 就是暴力法,套路就是递归,但是有很 ...

  9. leetcode算法题--不同的二叉搜索树

    原题链接:https://leetcode-cn.com/problems/unique-binary-search-trees/ 相关题目:leetcode算法题--不同的二叉搜索树 II 1.递归 ...

最新文章

  1. 指定一个开始日期和结束日期,算出中间的日期
  2. pca降维的基本思想_一文读懂 PCA 降维算法
  3. 关于Hadoop多用户管理支持客户端远程操作的理论总结
  4. linux diff(differential) 命令
  5. javascript的缓动效果
  6. UNITY 打包时提示sdk tools 或 sdk build tools版本低时可以直接点update 按钮进行更新...
  7. springboot创建parent_Spring Boot 开篇:快速入门
  8. 字体编辑器_FontLab 7 ——字体编辑器
  9. 印刷点阵字体_印刷术如何确定可读性:衬线与无衬线,以及如何组合字体。
  10. 「镁客早报」蓝色起源完成无人火箭试飞;知名对冲基金做空高通...
  11. java删除指定目录下文件_Java中循环删除指定目录下的文件
  12. 20155216 Exp6 信息搜集与漏洞扫描
  13. 四、物理优化(6)数据库引擎优化顾问
  14. 用VBS实现公司自动打卡
  15. 可视化驱动治理:公共交通系统的可视化实践
  16. 2500亿规模,20%年增长,猎头平台化时代,谁的赢面最大? | 一点财经
  17. ZipEntry的使用
  18. 面向对象的系统分析(一)-系统分析方法
  19. [转] JavaScript 骚操作
  20. PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive Learning

热门文章

  1. python在线课程-开始网上在线深度学习python课程
  2. python开发好学吗-python软件开发好学吗
  3. python语言能干什么-python语言都可以做什么
  4. python中怎么比较两个列表-Python两个列表元素比较
  5. python创建txt文件并写入 编码-Python文本文件读写操作时的字符编码问题
  6. python课程费用-上海Python数据分析课程
  7. Ubuntu在命令行下不能够切换字母的大小写,只能输入大写字母
  8. lightningJS之动画
  9. php中的__call调用
  10. ArrayList、LinkedList和Vector