LeetCode-375.猜数字大小
题目描述
思路
这是一道dp的题目,我们用dp(i, j)表示在范围[i, j]内确保胜利的最少金额,那么目标就是计算dp(1, n)
假设第一次猜的数字是x且猜错了,那么需要先支付金额x, 然后继续猜。那么就有两种情况:
- 当x大于所选的数字, 那么为了确保胜利,还需要支付dp(1, x - 1)
- 当x小于所选的数字,那么为了确保胜利,还需要支付do(x + 1, n)
为了确保任何情况下都能保证胜利,就应该考虑最坏的情况,也就是要取上述两种情况的最大值,即dp(1, n) = x + max(dp(1, x-1), dp(x+1,n))
为了确保胜利金额最小化,我们要考虑所有x的情况,即
dp(1, n) = min(x + max(dp(1, x-1), dp(x+1,n))), 其中1 ≤ x ≤ n
代码实现(py3)
class Solution:def getMoneyAmount(self, n: int) -> int:dp = [[0] * (n + 1) for _ in range(n+1)]for i in range(n - 1, 0, -1):for j in range(i + 1, n + 1):min = 0xfffffor k in range(i, j):temp = k + max(dp[i][k-1],dp[k+1][j])if temp < min:min = tempdp[i][j] = minreturn dp[1][n]
时间复杂度:O(n^3)
空间复杂度:O(n^2)
LeetCode-375.猜数字大小相关推荐
- leetcode - 375. 猜数字大小 II
解题思路:这道题目的意思是我告诉你一个n值,然后我会在1到n之间选一个数字,让你来猜我选了哪个数. 我们需要意识到我们在范围 (1, n)中猜数字的时候,需要考虑最坏情况下的代价.也就是说要算每次都猜 ...
- LeetCode 375. 猜数字大小 II(DP)
文章目录 1. 题目 2. 解题 1. 题目 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小 ...
- Leetcode 375. 猜数字大小 II 解题思路及C++实现
方法一:递归 解题思路: 设置一个dp数组,dp[i][j] 表示从数字 i 到 j ,保证猜中所选数字所需的最小花费. 在数字 i 到 j 之间进行猜测时,我们选择数字 i < k < ...
- LeetCode 375. 猜数字大小 II
题目大意: https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n ...
- 375. 猜数字大小 II
375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字. 你来猜我选了哪个数字. 如果你猜到正确的数字,就会 赢得游戏 . 如果你猜错了,那么我会告诉你 ...
- Java实现 LeetCode 374 猜数字大小 II
375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...
- [Golang]力扣Leetcode - 374. 猜数字大小(二分查找)
[Golang]力扣Leetcode - 374. 猜数字大小(二分查找) 题目:猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我 ...
- LeetCode:374. 猜数字大小
374. 猜数字大小 猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了. 你可以 ...
- Java实现 LeetCode 374 猜数字大小
374. 猜数字大小 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的 ...
- LeetCode 374. 猜数字大小(二分查找)
1. 题目 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的接口 gu ...
最新文章
- 普通域账号客户端计算无关机选项
- 数据集轻松按需搜索,这个工具汇集近2000个图像数据集,可免费获取|Reddit高热...
- 拆分字符串的表值函数
- [转载]hadoop集群默认配置和常用配置
- 2020年全球十大数据中心趋势
- Android 如何实现带滚动条的TextView,在更新文字时自动滚动到最后一行
- 『ACM C++』 PTA 天梯赛练习集L1 | 016-017
- 如何检查CentOS服务器受到DDOS攻击
- nutsdb与mysql_分享下 nutsdb 单机 1 亿、10 亿数据实测
- memset函数的使用
- C# WinForm ListView控件用法详解
- 《Java疯狂讲义》重点及相关信息 第一章
- java jpa是什么_什么是JPA?
- 推荐9款便签云生成工具
- 人脸对齐之SDM论文解析
- ye读春秋左传系列视频讲解
- 巴黎出差及场测攻略V1.3
- 幂级数求和函数总结全在这里啦
- acer 4750 Fn+亮度键(左右方向键亮度调节)无效问题的解决办法
- 黑马程序员Java零基础视频教程笔记-方法
热门文章
- oracle11如何生成aw r,(Oracle)自定义调用AWRamp;ADDM
- 小波包变换/能量特征提取/结果图绘制-python代码
- 联通光纤宽带默认无法用ftp连接服务器,这样可以设置解决
- 中国医科大学2021年12月《护理中的人际沟通学》作业考核试题
- 数据结构和算法——用动态规划求解最短路径问题
- Python习题解答:将学生的各科考试成绩保存为csv文件格式
- 有不有比加密更强的加密呢,有.拼音加密
- python导出依赖包
- Hi3516内核编译
- 海思USB2.0、USB3.0 Device UVC规格热插拔会不识别