题目:一个数组,俩人从里面取数,要么从最左边取,要么从最右边取,直至把所有数取完,若第一个人取得所有数之和比第二个人取得数之和大,则为true

输入:一个整型数组

输出:true or false

别人思路:
  使用动态规划的思想:设dp[i][j]表示从piles[i]到piles[j]你可以比对手多得的最多的分数。这样我们的最终目标是dp[0][n-1]。
  现在我们需要确定转移方程和初始条件。在piles[i]~piles[j]中,你可以选择piles[i]或者piles[j]:
  如果你选择了piles[i],那么你的对手就会从piles[i+1]~piles[j]中得到最多的分数,分数差值为piles[i]-dp[i+1][j].(题目要求都发挥最佳水平,所以对于对手而言dp的含义一样。,他会从剩下的piles中选择最多的分数,所以两者做减法。)
  如果你选择了piles[j],分数差值为piles[j] - dp[i][j-1].
所以状态转移方程为:
dp[i][j] = max(piles[i] - dp[i + 1][j], piles[j] - dp[i][j - 1])

class solution{public boolean stoneGame(int[] piles) {int dp[][] = new int[piles.length][piles.length] ;for(int i=0;i<piles.length;i++){dp[i][i] = piles[i] ;}for(int j=1;j<piles.length;j++){for(int i=0;i<piles.length-j;i++){dp[i][i+j] = Math.max(piles[i] - dp[i+1][i+j], piles[i+j] - dp[i][i+j-1]) ;}}return dp[0][dp.length-1] > 0 ;}}

leetcode877.StoneGame相关推荐

  1. leetcode877

    leetcode877 Stone Game 思路:贪心策略显然不对 因此需要列举所有情况 使用dp降低时间复杂度(此题有数学解 可以证明Alex一定赢) alex和lee是在头和尾轮流拿石头 dp记 ...

  2. LeetCode-877 石子游戏

    动态规划 LeetCode-877 石子游戏 题目链接:LeetCode-877 题目大意:从一排石子堆最左面或者最右面取石子 每次一堆必须全部取走 最后石子总数多的获胜 问最后先手可不可以获胜 解题 ...

  3. 动态规划---石子游戏

    动态规划---石子游戏 石子游戏(leetcode877) 石子游戏(leetcode1140) 石子游戏(leetcode1686) 石子游戏(leetcode877) 题目描述 亚历克斯和李用几堆 ...

  4. Acwing LeetCode 题目分类——配套基础课进阶课

    LeetCode 题目分类--配套基础课进阶课 1.基础 二分(满足一个条件的最值问题) LeetCode33 https://leetcode.com/problems/search-in-rota ...

  5. 一道看完答案你会觉得很沙雕的「动态规划算法题」

    这道算法题其实并不难,如果你把文章从头到尾看完的话基本上能看懂,但如果你看到最后的话大概率会说一句:这是什么沙雕题目?! 题目来源于 LeetCode 第 877 号问题:石子游戏. 为了更好理解,我 ...

  6. leetcode算法题--石子游戏

    原题链接:https://leetcode-cn.com/problems/stone-game/ 本题是预测赢家低配版,还限制了石子堆数是偶数,石子总数为奇数 1.动态规划 bool stoneGa ...

  7. 互联网大厂算法面试题集合,看完我跪了!

    来源:https://github.com/azl397985856/leetcode 介绍 leetcode 题解,记录自己的 leetcode 解题之路. 本仓库目前分为五个部分: 第一个部分是 ...

  8. Nim 游戏 、⽯头游戏1、石头游戏2

    Nim 游戏 .⽯头游戏1.石头游戏2 文章目录 Nim 游戏 .⽯头游戏1.石头游戏2 **一:Nim 游戏** **二:⽯头游戏** **三.石头游戏2** **方法一:DP 函数** **方法二 ...

  9. leetcode 877. Stone Game | 877. 石子游戏(递归/动态规划/数学解法)

    题目 https://leetcode.com/problems/stone-game/ 题解 搜了一下 stone game,结果.. 进入正题: 一开始写了个递归,超时了.没想出怎么写 dp,看了 ...

最新文章

  1. Python matplotlib可视化:在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)、水平条形图(horizontal bar)
  2. C语言函数集(十四)
  3. [NOI2008]志愿者招募
  4. html转word保留样式_译员必备 | 初识Word格式标记
  5. Python中if __name__ == '__main__':作用
  6. linux修复uefi启动文件,uefi-gpt-linux修复grub rescue
  7. 解码Java.Lang.OutOfMemoryError:PermGen空间
  8. linux的程序员计算器,linux中的计算器
  9. 【Linux】kali 2019.4 安装中文输入法
  10. if命令在HTML语言中 隐藏部分内容,vuejs使用v-if隐藏不需要的内容,生成的html标签中有!-----,请问怎样去掉这些注释?...
  11. 用mysqlslap对MySQL进行压力测试
  12. 安卓系统校园招聘平台APP答辩PPT免费下载
  13. 6.1(数学:五角数)
  14. 奇异值分解SVD与在降维中的应用
  15. ZZULIOJ.1706: 神奇的编码
  16. 测试方法之JUnit单元测试
  17. DOSBOX 0.74模拟器安装Windows 95
  18. 【百度】怎么使用cookie登陆百度账号
  19. 区块链≠分布式账本,别再傻傻分不清
  20. python wms系统源码_java开发的wms仓库管理系统源码(PC+Android)

热门文章

  1. 一周小结(2016-05-16~2016-05-21)
  2. url、href、src 详解
  3. windowoPhone7.1 Socket编程-实现手机与电脑通信
  4. 转载:给自己一个警示
  5. 软件设计师16-数据结构02(排序/查找)
  6. uml学习之图书借阅简化用例图创建
  7. SELinux系列(十七)—awk命令使用详解
  8. 多线程bug处理记录
  9. [转]35个高级Python知识点总结
  10. ddr老化测试_手把手教你评估和测试固态存储【深度】