当前位置: 首页 > news >正文

leetcode 375 猜数字大小II

一、题目描述

二、解题思路

解法一:深度优先搜索

(1)函数功能:dfs函数用于返回[left,right]区间内,获得游戏胜利的最少钱数;

(2)递归出口:

如果left==right,表示找到了叶子节点,也就是猜到了这个数字,不用给钱,直接返回0就行。如果left>right,表示该区间里没有数字,直接返回0。所以,if(left>=right) ,return 0即可。

(3)函数体:

1>变量ret用于记录最终的返回值,初始化为INT_MAX;

2>从left开始循环枚举;

3>l用于记录(left,head-1)区间所需的钱数,r用于记录(head+1,right)区间所需的钱数,head+max(l,r)即为从head开始猜测需要用的最少的钱数;

4>每次循环结束,如果当前的head+max(r,l)小于等于ret,就更新ret,循环结束后得到的ret,即为符合题意的最小的金额。

解法二:记忆化搜索(优化)

解法一存在大量的重复计算,导致复杂度高,运行超时。我们可以采用记忆化搜索的方法来优化解法一。memo数组初始化为0,在dfs函数中:

(1)如果memo[left][right]!=0,表示这个值已经算过了,直接返回memo[left][right]即可(写在递归出口之后);

(2)在每次返回ret之前,把memo[left][right]更新一下。

三、代码实现

解法一:深度优先搜索(超时)

class Solution {
public:int getMoneyAmount(int n) {return dfs(1,n);}int dfs(int left,int right){//递归出口if(left>=right) return 0;int ret=INT_MAX;for(int head=left;head<=right;head++){int l=dfs(left,head-1);int r=dfs(head+1,right);ret=min(ret,max(l,r)+head);}return ret;}
};

解法二:记忆化搜索

class Solution {//记忆化搜索int memo[201][201]={0};
public:int getMoneyAmount(int n) {return dfs(1,n);}int dfs(int left,int right){//递归出口if(left>=right) return 0;if(memo[left][right]!=0) return memo[left][right];int ret=INT_MAX;for(int head=left;head<=right;head++){int l=dfs(left,head-1);int r=dfs(head+1,right);ret=min(ret,max(l,r)+head);}memo[left][right]=ret;return ret;}
};

http://www.dtcms.com/a/487323.html

相关文章:

  • 测试用例之正交试验法、功能图法
  • Vue 通信组件传值【10】
  • web vue之状态管理Pinia
  • [Backstage] 前端扩展 | 应用扩展树 | 工厂函数 | attachTo附着点
  • 凡科网站案例网站备案好麻烦
  • ps做全屏网站画布要多大网络推广与传统推广的区别
  • 动易网站 首页模板修改智能科技网站模板
  • JVM 内存结构与 GC 机制详解( 实战优化版)
  • JVM垃圾收集器详解(jdk21+25实战版)
  • 花店网站建设规划书如何用易语言做网站辅助
  • 怎样做交互式网站网站建设的标语
  • 【iOS】KVC
  • 自己注册公司网站教育网站建设网站
  • 九度企业网站推广软件合肥网站建设工作
  • Beyond Vision (BV) -具有人工智能功能的全自动多旋翼无人机和混合垂直起降无人机
  • 做网站网络公司无收入阿里巴巴建站多少钱
  • 旅游网站对比模板下载08wordpress主题
  • HTTP之POST请求和GET请求
  • 聚类算法详解:k-means、层次聚类和DBSCAN
  • 廊坊中小企业网站制作做汽配找哪个网站好
  • 网站建设视频教程集工厂管理软件
  • Linux 学习笔记之 VI 编辑器与文件查找技巧
  • 贵阳网站建设多钱钱清远专业网站制作公司
  • 网站设计对网站搜索引擎友好性的影响南宁市两学一做网站
  • 什么是部署php网站邢台城乡建设局网站
  • 搜狐三季度营收多少新开网站seo
  • 基于 clangd 搭建 Redis 6.2 源码阅读与调试环境
  • 备案主体负责人 网站负责人哪个网站做ppt好
  • C文件中在编译时候怎么把几个同名函数链接进来
  • 影视 IP 全链开发:App 如何成为核心