1、题目
877. 石子游戏
2、题解
首先,一开始我觉得这道题目并不严谨。因为我大略感觉到先手选择的人就能赢得这个游戏,因为你总是可以在当前的选择中选择对自己有利的拿取方式,而后手只能在剩下的机会中选择。可是如果这道题并不限制于偶数堆这个限制的话,先手优势就不存在了(例:【1,100,1】)你怎么拿都是后手赢。所以,我们应该严谨的判断一下数组长度,如果是偶数,就直接返回TRUE,如果是奇数,就使用DP来做即可。
具体看代码。
3、代码
正常解法:
class Solution {
public boolean stoneGame(int[] piles) {
int length=piles.length;
//偶数直接TRUE,先手胜利;
if(length%2

本文介绍了LeetCode第877题——石子游戏的解题思路。当石子堆数量为偶数时,先手玩家总是可以获胜。对于奇数数量的石子堆,通过动态规划(DP)方法来确定胜负。文章提供了两种Java代码实现,一种考虑了奇偶性判断,另一种是简单的DP解决方案。
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



