LeetCode 877. 石子游戏
1、题目
877. 石子游戏
2、题解
首先,一开始我觉得这道题目并不严谨。因为我大略感觉到先手选择的人就能赢得这个游戏,因为你总是可以在当前的选择中选择对自己有利的拿取方式,而后手只能在剩下的机会中选择。可是如果这道题并不限制于偶数堆这个限制的话,先手优势就不存在了(例:【1,100,1】)你怎么拿都是后手赢。所以,我们应该严谨的判断一下数组长度,如果是偶数,就直接返回TRUE,如果是奇数,就使用DP来做即可。
具体看代码。
3、代码
正常解法:
class Solution {public boolean stoneGame(int[] piles) {int length=piles.length;//偶数直接TRUE,先手胜利;if(length%2==0){return true;}//奇数int[][] dp = new int[length][length];for (int i = 0; i < length; i++) {dp[i][i]=piles[i];}for(int i=length-1;i>=0;i--){for (int j = i+1; j <length; j++) {dp[i][j]=Math.max(piles[i]-dp[i+1][j],piles[j]-dp[i][j-1]);}}return dp[0][length-1]>0;}}
不考虑题目扩展的解法:
class Solution {public boolean stoneGame(int[] piles) {return true;}
}
4、执行结果
正常解法:
带了奇偶判断的写法:
直接使用dp的结果:
不考虑题目扩展的解法:
LeetCode 877. 石子游戏相关推荐
- leetcode —— 877. 石子游戏
亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] . 游戏以谁手中的石子最多来决出胜负.石子的总数是奇数,所以没有平局. 亚历克斯和李轮流进行,亚历克斯先开始 ...
- leetcode 877. 石子游戏(dp)
题目 亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] . 游戏以谁手中的石子最多来决出胜负.石子的总数是奇数,所以没有平局. 亚历克斯和李轮流进行,亚历克斯 ...
- 【Leetcode 877. 石子游戏】DP求解
题面: 亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] . 游戏以谁手中的石子最多来决出胜负.石子的总数是奇数,所以没有平局. 亚历克斯和李轮流进行,亚历克 ...
- LeetCode 1690. 石子游戏 VII(博弈DP)
文章目录 1. 题目 2. 解题 1. 题目 石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 . 有 n 块石子排成一排.每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获 ...
- LeetCode 1686. 石子游戏 VI(贪心)
文章目录 1. 题目 2. 解题 283 / 1660,前17% 681 / 6572,前10.4% 1. 题目 Alice 和 Bob 轮流玩一个游戏,Alice 先手. 一堆石子里总共有 n 个石 ...
- LeetCode 1406. 石子游戏 III(DP)
1. 题目 Alice 和 Bob 用几堆石子在做游戏.几堆石子排成一行,每堆石子都对应一个得分,由数组 stoneValue 给出. Alice 和 Bob 轮流取石子,Alice 总是先开始.在每 ...
- LeetCode 1690.石子游戏VII
LeetCode 1690.石子游戏VII 问题描述: 石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 . 有 n 块石子排成一排.每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的 ...
- LeetCode 1140. 石子游戏 II(DP)*
文章目录 1. 题目 2. 解题 1. 题目 亚历克斯和李继续他们的石子游戏.许多堆石子 排成一行,每堆都有正整数颗石子 piles[i].游戏以谁手中的石子最多来决出胜负. 亚历克斯和李轮流进行,亚 ...
- LeetCode 1140.石子游戏 II
题目描述 爱丽丝和鲍勃继续他们的石子游戏.许多堆石子 排成一行,每堆都有正整数颗石子 piles[i].游戏以谁手中的石子最多来决出胜负. 爱丽丝和鲍勃轮流进行,爱丽丝先开始.最初,M = 1. 在每 ...
最新文章
- 产业AI实践中,如何有效提升图像识别精度、实现极小目标检测? | 百度AI公开课报名...
- 用Eclipse进行远程Debug代码
- 自动化测试之键盘操作和select操作
- 数据解析1:XML解析(3)
- 理查德·汉明和他的汉明码
- 论坛一大早白屏,无法访问
- 第2课 贝贝的图形(vhist)-2019-07-11《聪明人的游戏-提高篇》
- pythonunicode和str_python2 中 unicode 和 str 之间的转换及与python3 str 的区别
- 什么是平面设计?详细讲解平面设计
- 谷歌联网断网都可以玩的恐龙小游戏(内容有不死加速挂)
- 高中计算机课简单介绍,高中课程介绍
- 开热点给电脑消耗大吗_电脑连热点流量消耗大吗
- 2011端午节搞笑短信大全
- Struck Structured Output Tracking with Kernels阅读笔记
- 跟我StepByStep学FLEX教程------概述(原创)
- Teamview免费版连接超限解决办法
- h5+MUI移动APP和普通H5之间的区别有哪些?
- GD32F4xx系列CAN通信收发配置
- 如何在excel单词后面批量加固定文字?
- 陆奇最新演讲:如何成为一个优秀的工程师