原题链接:https://leetcode-cn.com/problems/stone-game-ii/

相关题目:石子游戏

动态规划:

dp[i][j]表示在i~n-1堆石子中,最多拿前2*j堆时先手能拿到的最大数量,M为j

状态转移:

//即假设对手选了前k堆,则先手得到的最大数量为max(总量-对手最多拿到的数量)
dp[i][j] = max(dp[i][j], sum - dp[i + k][max(j, k)]);

代码:

int stoneGameII(vector<int>& piles) {int size = piles.size();vector<vector<int>> dp(size+1, vector<int>(size+1, 0));for (int j = 1; j <= size; j++){dp[size - 1][j] = piles[size-1];//当只有n-1堆时,无论怎么拿只有piles[n-1]}int sum = 0;for (int i = size - 1; i >= 0; i--){sum += piles[i];for (int j = 1; j <= size; j++){//最多拿2*j堆石子for (int k = 1; k <= 2 * j&&k <= size - i; k++){dp[i][j] = max(dp[i][j], sum - dp[i + k][max(j, k)]);//max(j,k)代表本次取k则下次则取max(j,k)}}}return dp[0][1];
}

leetcode算法题--石子游戏 II★★相关推荐

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

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

  2. LeetCode算法题-Valid Palindrome II(Java实现)

    这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...

  3. leetcode算法题--Unique Paths II

    原题链接:https://leetcode.com/problems/unique-paths-ii/ class Solution {public:int uniquePathsWithObstac ...

  4. leetcode算法题--Jump Game II

    原题链接:https://leetcode.com/problems/jump-game-ii/ int jump(vector<int>& nums) {int l = 0, r ...

  5. leetcode算法题--剪绳子 II

    原题链接:https://leetcode-cn.com/problems/jian-sheng-zi-ii-lcof/ 相关题目:剪绳子 1.循环求余法 //(x ^ a) % p; long re ...

  6. leetcode算法题--螺旋矩阵 II

    原题链接:https://leetcode-cn.com/problems/spiral-matrix-ii/ 相关题目:螺旋矩阵 vector<vector<int>> ge ...

  7. leetcode算法题--环形链表 II★

    原题链接:https://leetcode-cn.com/problems/linked-list-cycle-ii/ 1.map ListNode *detectCycle(ListNode *he ...

  8. leetcode算法题--反转链表 II★

    原题链接:https://leetcode-cn.com/problems/reverse-linked-list-ii/ 1.头插法 ListNode* reverseBetween(ListNod ...

  9. leetcode算法题--丑数 II★

    原题链接:https://leetcode-cn.com/problems/ugly-number-ii/ 三指针 int nthUglyNumber(int n) {int a = 0, b = 0 ...

最新文章

  1. 经典算法研究系列:二、Dijkstra 算法初探
  2. 赋值运算符||位运算符||三元运算符
  3. ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能(六)
  4. Linux压缩解压缩命令
  5. Android中实现日期时间选择器(DatePicker和TimePicker)
  6. android的单选按钮xml语法,android 控件 单项选择(RadioGroup,RadioButton)
  7. 文件标识符必须为双精度类型的整数值标量_数据类型
  8. 设置将pip的下载源变更为国内源-windows配置方法
  9. 机试题:地图定位、拍照并显示、录制视频并播放
  10. 实验题目用正交多项式做小二乘曲线拟合
  11. LTE-FDD和TDD帧结构
  12. 找出数组中最大元素的位置(下标值)
  13. 爬了 48048 条评论,解读 9.3 分的「毒液」是否值得一看?
  14. java ping域名
  15. python刷阅读_Python 刷高博客阅读量
  16. linux防火墙端口配置策略路由,Linux iptables防火墙详解 + 配置抗DDOS攻击策略实战...
  17. 续编-联想原装系统OEM系统联想出厂系统联想原装系统Lenovo ThinkPad ThinkBook出厂预装系统原厂系统
  18. Unity VR开发教程 OpenXR+XR Interaction Toolkit 2.1.1 (四) 传送
  19. 有效监控的 10 条基本原则
  20. 外星飞船CSS3动画代码

热门文章

  1. python代码需要背吗-python代码运行需要编译吗
  2. python自带的shell是什么-python的shell是什么
  3. python3.5安装教程-Python 3.5安装教程
  4. python3.5怎么使用-在ros中使用python3.5
  5. head first python 第二版 中文版-Head First Python 中文版
  6. python单词翻译-完成自动查找翻译单词的python源代码
  7. Opengl-光照-基本光照-光照贴图(现在告别单调的方块弄个箱子)
  8. StarUML 4.0
  9. protobuf3在php中的使用
  10. shell脚本中的引用