方法一:递归

解题思路:

设置一个dp数组,dp[i][j] 表示从数字 i 到 j ,保证猜中所选数字所需的最小花费。

在数字 i 到 j 之间进行猜测时,我们选择数字 i < k < j,则花费为 k + max(dp[i][k-1], dp[k+1][j]),也就是说,花费是 k 加上其左右两段中的最大者,这样才能保证猜中数字。所以,遍历从 i 到 j 之间的数字k,得到最小的花费,即是 dp[i][j] 的值。

就这样依次更新记录在 dp 数组中,就可以不超时。

更多详细的解法,可以参考:https://www.cnblogs.com/grandyang/p/5677550.html

class Solution {
public:int getMoneyAmount(int n) {vector<vector<int> > dp(n+1, vector<int>(n+1, 0));return getMinMax(1, n, dp);}int getMinMax(int left, int right, vector<vector<int> >& dp){if(left == right) return 0;if(left == right - 1) return left;//下面这句必须加上,否则就超出时间限制了if(dp[left][right] > 0) return dp[left][right];long local_max = INT_MAX;for(long k = left + 1; k < right; k++){long tmp = k + max(getMinMax(left, k-1, dp), getMinMax(k+1, right, dp));if(tmp < local_max) local_max = tmp;}dp[left][right] = local_max;return local_max;}
};

Leetcode 375. 猜数字大小 II 解题思路及C++实现相关推荐

  1. leetcode - 375. 猜数字大小 II

    解题思路:这道题目的意思是我告诉你一个n值,然后我会在1到n之间选一个数字,让你来猜我选了哪个数. 我们需要意识到我们在范围 (1, n)中猜数字的时候,需要考虑最坏情况下的代价.也就是说要算每次都猜 ...

  2. LeetCode 375. 猜数字大小 II(DP)

    文章目录 1. 题目 2. 解题 1. 题目 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小 ...

  3. LeetCode 375. 猜数字大小 II

    题目大意: https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n ...

  4. 375. 猜数字大小 II

    375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字. 你来猜我选了哪个数字. 如果你猜到正确的数字,就会 赢得游戏 . 如果你猜错了,那么我会告诉你 ...

  5. Java实现 LeetCode 374 猜数字大小 II

    375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...

  6. leetcode 375. Guess Number Higher or Lower II | 375. 猜数字大小 II(动态规划思路总结)

    题目 https://leetcode.com/problems/guess-number-higher-or-lower-ii/ 题解 首先,看了 Related Topics,知道这是个 dp 问 ...

  7. C++题解-Leecode 375. 猜数字大小 II——Leecode每日一题系列

    今天是坚持每日一题打卡的第十七天 题目链接:https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii/submissions/ ...

  8. ​LeetCode刷题实战375:猜数字大小 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  9. [Golang]力扣Leetcode - 374. 猜数字大小(二分查找)

    [Golang]力扣Leetcode - 374. 猜数字大小(二分查找) 题目:猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我 ...

最新文章

  1. Be a person
  2. matlab图像处理命令(二)
  3. qt命令行程序启动外部进程_QT之程序打包发布
  4. 关于Activity onNewIntent方法的调用时机
  5. how to export many stock data from Wind terminal
  6. native react 图片多选_开源一个图片组件 react-native-border-radius-image
  7. 查看swintransformer的网络结构.children()
  8. 如何实现一套可切换的声网+阿里的直播引擎
  9. LeetCode 904. 水果成篮(滑动窗口)
  10. 感知器原理及线性分类技术实现
  11. 跨域 · 后台设置:头部header(服务器端添加属性、属性值,浏览器端获取属性及其值) - 数据篇
  12. 一致性算法Paxos
  13. 吐血整理!必须收藏,44条代码优化细节
  14. LIO-SAM探秘第三章之代码解析(二) --- featureExtraction.cpp
  15. myeclipse svn 删除文件或者文件夹
  16. css如何实现div背景透明
  17. IDEA中使用Git拉取代码时出现Can‘t update: no tracked branch错误
  18. 虎爸虎妈看过来,AI时代,陪孩子玩什么游戏?
  19. 华三AP(wa4320acn)wifi设置(命令行)
  20. Bootstrap插件(一)——模态框(modal.js)

热门文章

  1. 分布式面试题(含解答)
  2. easyui js拼接html,class属性失效的问题
  3. smooth_L1_loss_layer.cu解读 caffe源码初认识
  4. dispatch事件分发
  5. Java Web学习路线
  6. oracle从备份归档日志的方法集中回收
  7. [小功能]按阅读数、评论数、评论时间查看首页随笔
  8. Android驱动开发之Hello实例(基于高通msm8909)
  9. 关于LCD的分屏与切屏 Tearing effect
  10. java 反射 orm_Java-反射机制简介