LeetCode.1025-除数游戏(Divisor Game)
这是小川的第382次更新,第411篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第244题(顺位题号是1025)。Alice和Bob轮流玩游戏,Alice首先出发。
最初,黑板上有一个数字N. 在每个玩家的回合中,该玩家进行以下操作:
选择0 < x <N且N%x == 0的任何x。
用N - x替换黑板上的数字N.
此外,如果玩家无法移动,他们将输掉游戏。
当且仅当Alice赢得比赛时才返回True,假设两个玩家都达到最佳状态。
例如:
输入:2
输出:true
说明:Alice选择1,Bob没有更多动作。
输入:3
输出:false
说明:Alice选择1,Bob选择1,Alice不再移动。
注意:
- 1 <= N <= 1000
02 解题
N=1,0 < x < 1且1%x == 0,没有符合的数,Alice输。
N=2,0 < x < 2且2%x == 0,Alice取1,N变成1,轮到Bob,Bob无法选择合适的数,Alice赢。
N=3,0 < x < 3且3%x == 0,Alice取1,N变成2,轮到Bob,Bob选1,N变成1,轮到Alice再选,没有符合的数,Alice输。
N=4,0 < x < 4且4%x == 0,Alice取1,N变成3,轮到Bob,Bob选1,N变成2,轮到Alice再选1,N变成1,再轮到Bob选,没有符合的数,Alice赢。
N=5,0 < x < 5且5%x == 0,Alice取1,N变成4,轮到Bob,Bob选1,N变成3,再轮到Alice选,和前面N等于3结果一样,Alice输。
N=6,0 < x < 6且6%x == 0,Alice取1,N变成5,轮到Bob,Bob选1,N变成4,再轮到Alice选,和前面N等于4结果一样,Alice赢。
从上面依次计算的例子来看,当N为奇数的时候,谁先开始,谁就输,因为对方肯定会让你继续变成奇数,直到N变成1。
当N为偶数的时候,谁先开始,谁就赢,第一步取1,将N变成奇数,对方只能继续取1或者其他奇数,奇数减去奇数变为偶数,开始的那一方再取1,直到N变成1。
public boolean divisorGame(int N) {
return N%2 == 0;
}
03 小结
算法专题目前已连续日更超过七个月,算法题文章250+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。
以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!
LeetCode.1025-除数游戏(Divisor Game)的更多相关文章
- Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game)
Leetcode之动态规划(DP)专题-1025. 除数博弈(Divisor Game) 爱丽丝和鲍勃一起玩游戏,他们轮流行动.爱丽丝先手开局. 最初,黑板上有一个数字 N .在每个玩家的回合,玩家需 ...
- BZOJ 1025 [SCOI2009]游戏
1025: [SCOI2009]游戏 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1533 Solved: 964[Submit][Status][ ...
- BZOJ 1025: [SCOI2009]游戏( 背包dp )
显然题目要求长度为n的置换中各个循环长度的lcm有多少种情况. 判断一个数m是否是满足题意的lcm. m = ∏ piai, 当∑piai ≤ n时是满足题意的. 最简单我们令循环长度分别为piai, ...
- leetcode 174. 地下城游戏 解题报告
leetcode 174. 地下城游戏 一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下 ...
- LeetCode:跳跃游戏【55】
LeetCode:跳跃游戏[55] 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能够到达最后一个位置. 示例 1: 输入: ...
- 力扣Leetcode 45. 跳跃游戏 II - 贪心思想
这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃 ...
- LeetCode 1025. Divisor Game
题目链接:https://leetcode.com/problems/divisor-game/ 题意:Alice和Bob玩一个游戏,Alice先开始.最初,黑板上有一个数字N.每一轮,选手首先需要选 ...
- [LeetCode] Minesweeper 扫雷游戏
Let's play the minesweeper game (Wikipedia, online game)! You are given a 2D char matrix representin ...
- [Swift]LeetCode1025. 除数博弈 | Divisor Game
Alice and Bob take turns playing a game, with Alice starting first. Initially, there is a number N o ...
随机推荐
- 第二章 Vue快速入门-- 24 过滤器-Vue中全局过滤器的基本使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- selenium-Xpath使用方法
01:什么是Xpath Xpath是一门xml文档中查找信息的语言,Xpath可用来在xml文档中对元素和属性进行遍历,主流的浏览器都支持xpath,因为HTML页面在DOM中表示xhtml文档 xp ...
- 集合(一)Collection、List、ArrayList和Vector
一.Collection 集合存放在java.util包中,可以看作是集成好的数据结构,供你调用,十分方便,集合经常拿来和数组对比,其实我觉得没啥可比性,不过还是简单来看看它们的区别: 1.数组长度固 ...
- 网络编程与socket
.互联网协议 互联网协议又称为网络七层协议,OSI七层协议,OSI是一个世界标准组织. OSI七层协议: - 应用层 - 表示层 - 会话层 - 传输层 - 网络层 - 数据链路层 - 物理连接层 学 ...
- hive的外部表
最近买了一本hive看,发现书中有一个错误: 我的验证如下: 1.外部表数据存在自己表所属的目录下 2.还发现了 CTAS 操作不能 建立外部表
- pandas的dataframe与spark的dataframe
- C# MVC的默认页
MVC的默认页,其实是默认路由设置启动哪一个Controller的哪一个Action,在根目录的Global.asax.cs里面设置.是MVC项目里面的路由.將下面的controller和action ...
- electron桌面通知,修改默认通知应用名electron.app.Electron为自己应用的名称
在做electron桌面通知时,按照文档实现弹出通知,但是默认的应用名为electron.app.Electron 解决办法 就是在主进程中设置 app.setAppUserModelId('myAp ...
- 【HDOJ5447】Good Numbers(数论)
题意: 思路:From https://blog.csdn.net/qq_36553623/article/details/76683438 大概就是把1e6里面的质因子能除的都除光之后借助两者gcd ...
- 微信小程序_(组件)form表单
Form表单.switch开关.数值选择器效果 官方文档:传送门 点击提交表单(按钮,提交开关,数值选择器,输入文本中)的值,显示在控制台上,点击重置,重置表单中的值. 实现过程 form表单,添加f ...