-
比赛链接 https://leetcode-cn.com/contest/weekly-contest-132
-
第一题
- 题目描述
-
爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。
最初,黑板上有一个数字
N
。在每个玩家的回合,玩家需要执行以下操作: - 选出任一
x
,满足0 < x < N
且N % x == 0
。 - 用
N - x
替换黑板上的数字N
。 -
如果玩家无法执行这些操作,就会输掉游戏。
只有在爱丽丝在游戏中取得胜利时才返回
True
,否则返回false
。假设两个玩家都以最佳状态参与游戏
-
- 解题思路
- 很少做博弈题,第一个是17分钟才A,果然还是菜,这个题是让判断能否存在一个n的因数i,使得n - i 的局面下先出手必输,因此直接动态规划好了,我们将输定义为 0,赢定义为1,初始的dp数组全为0, 从2到n遍历数组。
- 一个诡异的做法是 直接判断 n&1 == 0 等于0就是赢,不等就是输。。。应该和数学有关。
- 代码
- python
- 题目描述
leettcode 第132周赛题解
最新推荐文章于 2024-03-08 20:57:36 发布
本文详细解析了LeetCode周赛第132周的四道题目,涉及博弈论、二叉树遍历和动态规划等算法。第一题是关于游戏的动态规划问题,第二题要求找到二叉树中不同节点间的最大值,第三题求最长等差子序列,第四题则是根据深度优先搜索的输出还原二叉树。作者分享了解题思路及Python代码实现,并对自己的表现进行了反思和总结。
摘要由CSDN通过智能技术生成