【LeetCode笔记 - 每日一题】375. 猜数字游戏 II (Java、DFS、动态规划)

文章目录

  • 题目描述
  • 思路 && 代码
      • DFS
      • 动态规划

新系列~用于区分开高频题和每日一题~

题目描述

  • 一眼二分,但是实际上并不是
  • 这题让我想到社团的猜数字游戏…但是给钱是真过分了= =
    在这里插入图片描述

思路 && 代码

DFS

  • 自底向上进行递归。
  • Math.max():因为可能选左边,也可能选右边~选取最大的,作为保证
class Solution {static int[][] cache = new int[201][201]; // 200 是最大npublic int getMoneyAmount(int n) {return dfs(1, n);}int dfs(int l, int r) {if(l >= r) return 0; // 就一个,不用猜if(cache[l][r] != 0) return cache[l][r]; // 已算过,剪枝int ans = Integer.MAX_VALUE; // 维护当前区间的最小值// 遍历区间值,每个都猜for(int x = l; x <= r; x++) {// 自底向上 dfs,选取较大的一个(毕竟要保证,所以左右都可能)int cur = Math.max(dfs(l, x - 1), dfs(x + 1, r)) + x; ans = Math.min(ans, cur); // 选取}// 维护 cachecache[l][r] = ans;return ans;}
}

动态规划

  • 总体思路和 DFS 差不多,注意顺序保证无后效性
class Solution {public int getMoneyAmount(int n) {int[][] dp = new int[n + 2][n + 2]; // 前后边界,+1 +1for(int i = n; i >= 1; --i) {// [j, i] 范围内for(int j = i; j <= n; ++j) {if(i == j) dp[i][j] = 0; // 就一个,不用判了else {dp[i][j] = Integer.MAX_VALUE; // 维护 dp[i][j] 的最小值。选取 [i][k - 1]、[k + 1][j] 的最大值// 在 [i, j] 中选一个for(int k = i; k <= j; ++k) {int cur = Math.max(dp[i][k - 1], dp[k + 1][j]) + k;dp[i][j] = Math.min(dp[i][j], cur);}}}}return dp[1][n];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python汉字同义词替换_python同义词替换的实现(jieba分词)

TihuanWords.txt文档格式注意&#xff1a;同一行的词用单个空格隔开&#xff0c;每行第一个词为同行词的替换词。年休假 年假 年休究竟 到底回家场景 我回来了代码import jiebadef replaceSynonymWords(string1):# 1读取同义词表&#xff0c;并生成一个字典。combine_dict {}#…

python去重语句_Python对列表去重的多种方法(四种方法)

无聊统计了下列表去重到底有多少种方法。下面小编给大家总结一下&#xff0c;具体内容详情如下&#xff1b; 开发中对数组、列表去重是非常常见的需求&#xff0c;对一个list中的id进行去重&#xff0c;有下面几种方法&#xff0c;前面两种方法不能保证顺序&#xff0c; 后面两…

【LeetCode笔记 - 每日一题】318. 最大单词长度乘积(Java、位运算)

文章目录题目描述思路 && 代码题目描述 挺不错&#xff01;有bitmap的感觉了。 思路 && 代码 思路好想&#xff1a;两两对比&#xff0c;无公共判断&#xff0c;维护 res那么&#xff0c;如何进行公共判断&#xff1f;这个是主要的问题给每个字符串&#x…

技术交底软件_【干货分享】软件类产品如何进行专利挖掘与技术交底书撰写?...

“导读&#xff1a;在很多人的认知里&#xff0c;软件著作权是软件著作权&#xff0c;专利是专利&#xff0c;两者并没有太多关联。甚至有的人认为&#xff0c;软件产品只能申请软件著作权保护&#xff0c;不能申请专利保护。但是&#xff0c;当有人抄袭你的软件设计理念&#…

python如何爬虫eps数据_入门Python爬虫 -- 解析数据篇

元素&#xff09;。一般情况下&#xff0c;网页头部分会定义HTML文档的编码以及网页的标题。而网页体部分则决定着一个网页中的正文内容。 # 一个最基本的HTML文档&#xff1a;# 网页头部分内容# 定义文档编码 文档的标题# 网页头部分内容结束# 网页体部分内容 文档的正文内容#…

【LeetCode笔记 - 每日一题】384. 打乱数组(Java、洗牌算法)

文章目录题目描述思路 && 代码题目描述 中等题&#xff0c;很赞&#xff01;第一次碰到涉及洗牌算法的题有点涉及概率&#xff0c;主要是要实现公平的随机 思路 && 代码 采用了 Knuth 洗牌算法&#xff0c;可以看看这篇博客时间复杂度O(N)&#xff0c;空间…

python redis模块connectionerror_ConnectionError:Error 2连接到Python/Django Redis中的unix套接字...

我正在尝试在一个全新的Mac上运行一个django项目。它一直工作到昨天&#xff0c;我不知道发生了什么&#xff0c;但突然间我开始收到Redis错误。在我可以加载不查询数据库的页面&#xff0c;但是一旦我尝试进行搜索(部分依赖于Redis)&#xff0c;它就不起作用了。在有什么想法吗…

split函数python 未定义_python split函数基本用法

Python split()方法描述&#xff1a; Python split() 通过指定分隔符对字符串进行切片&#xff0c;如果参数 num 有指定值&#xff0c;则分割成 (num1) 个子字符串。语法&#xff1a; str.split(str"", numstring.count(str))参数&#xff1a; str——分隔符&#xf…

【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)

文章目录题目描述思路 && 代码题目描述 看了题目以后想到啥&#xff1f; 字符数量统计银行家算法逐个拆解建立数字 - 字符串的全局映射 思路 && 代码 抄答案了&#xff0c;采取了评论区三叶dalao的写法&#xff08;不得不说&#xff0c;人家的处理写法是真…

字符串的地址_面试题:我有一批IPv6地址,你帮我想个办法来存储?

作者&#xff1a;dadiyang-绪扬来源&#xff1a;公众号Java面试那些事儿之前写了一篇《面试题&#xff1a;请用代码实现ip地址与int之间互换&#xff1f;》&#xff0c;有读者评论问到 IPv6 的转换方法&#xff0c;于是抽时间也自己实现了一下。面试官&#xff1a;我有一批IPv6…

【LeetCode笔记 - 每日一题】519. 随机翻转矩阵(Java、随机、双指针)

文章目录题目描述思路 && 代码题目描述 又是涉及到均等概率的随机&#xff5e; 思路 && 代码 用的题解区三叶的代码&#xff5e;写得是真的好&#xff01;不论题目&#xff0c;但抄一遍代码都能觉得有收获&#xff01;维度转化&#xff1a;并没有创造二维数…

当前操作系统缺少黑体等字体_从零开始开发一个操作系统

在2019年的最后一天终于完成了整个系统的开发&#xff0c;并给它起名曰——Inios 。就如同文章名字一样&#xff0c;完全是从内核编写&#xff0c;非二次开发&#xff0c;从最初的“hello os”到初次有了系统的样子。主要用C语言编写&#xff0c;部分汇编语言。。整个操作系统完…

db设计专用excel_独家|自卸车如何实现侧板结构快速设计,减少重复工作?

作者| 张凯 汉阳专用汽车研究所科研技术部工程师 主要从事专用汽车产品结构仿真与轻量化随着城市发展的步伐不断加快&#xff0c;适用于各种工况的自卸车、城市渣土车市场需求量不断增大。目前市场自卸车车厢主要有两种&#xff1a;U型车厢和普通矩形车厢。其中U型车厢自卸车&a…

python 线程退出_python线程退出

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;如果某线程并未使用很多 io 操作&#xff0c; 它会在自己的时间片内一直占用处理器(和 gil)。 也就是说&…

【LeetCode笔记 - 每日一题】334. 递增的三元子序列(Java、偏思路)

文章目录题目描述思路 && 代码题目描述 可以转换成300. 最长递增子序列&#xff0c;再看结果是否大于3但上述写法O(N)复杂度实现不了&#xff0c;还是得用针对这道题的写法&#xff08;见下&#xff09; 思路 && 代码 学习了评论区大佬的写法&#xff0c;…

python判断密码强度_python实现密码强度校验

本文实例为大家分享了python实现密码强度校验的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下一 校验规则规则1 密码长度8位以上规则2 密码需包含数字规则3 密码需包含大小写字母规则4 密码需包含特殊字符["", "-", "*", "/&quo…

python字典替换值_python字典改变value值方法总结

今天这篇文章中我们来了解一下python之中的字典&#xff0c;在这文章之中我会对python字典修改进行说明,以及举例说明如何修改python字典内的值。我们开始进入文章吧。 首先我们得知道什么是修改字典 修改字典 向字典添加新内容的方法是增加新的键/值对&#xff0c;修改或删除已…

【LeetCode笔记 - 每日一题】373. 查找和最小的 K 对数字(Java、堆、优先队列)

文章目录题目描述思路 && 代码题目描述 几天没打题&#xff0c;感觉脑子都是一团浆糊。。。。 升序&#xff1a;肯定得用这条件来优化复杂度数对&#xff1a;用 int[2] 来表示 思路 && 代码 看了题解区彤哥的思路&#xff0c;代码其实就 8 行 堆初始化&…

sql 循环处理数据_图文介绍 SQL 的三种查询计划处理模型,Spark 用了其中两个

我已经在之前的 《一条 SQL 在 Apache Spark 之旅(上)》、《一条 SQL 在 Apache Spark 之旅(中)》 以及 《一条 SQL 在 Apache Spark 之旅(下)》 这三篇文章中介绍了 SQL 从用户提交到最后执行都经历了哪些过程&#xff0c;感兴趣的同学可以去这三篇文章看看。这篇文章中我们主…

html调用python_flask之模板html中调用python函数方法

一&#xff1a;html里面可以调用python写的函数 add_template_global&#xff08;调用函数的引用&#xff0c;"调用函数的名字"&#xff09; from common.libs.UrlManager importUrlManager app.add_template_global(UrlManager.buildStaticUrl,"buildStaticUrl…