首页 > 其他分享 >记忆化搜索 dfs

记忆化搜索 dfs

时间:2024-06-10 15:33:45浏览次数:10  
标签:res 复杂度 cache dfs 记忆 搜索 执行

Q1   198. 打家劫舍

解法一:

知识点:记忆化搜索=递归搜索+保留计算结果

递归部分:

这样写能够完成上述题目,但是会超时,因为时间复杂度是质数级别,这时候就需要改进代码,也就是保留结果

Cache

简单解释一下,这里就运用了cache,起初全设置为-1,在进入dfs函数之后首先我们会判断这个dfs之前有没有调用过,也就是有没有保存过计算后的值,如果有,那么直接用,如果没有责在res计算后将其数值记到cache中,以便后续使用,这时候时间,空间复杂度都是n

修改后的代码:

此时复杂度还是n

优化:

升级版(记忆化搜索

代码:

优化:首先进入dfs之前就将三种方式都计算一遍,将得到的target值作为参数传入dfs

解释一下res=max(res,dfs(xxx)+1),为什么要把res和后面的对比来选择最大的,我们知道三个if是顺序执行的,在第二个if执行的时候,res的值已经是第一轮if执行完更新后的res了,所以第二个if中的res其实是第一个if执行完成后的if,相对的,第三个if中的res其实是第二个if执行完的if,那么为什么第一个if也要加res=max(res,dfs(xxx)+1)呢?,因为第一个if也要进入dfs的三个if,同样要通过比较三个if的res来筛选出最大的res

标签:res,复杂度,cache,dfs,记忆,搜索,执行
From: https://blog.csdn.net/2301_78295022/article/details/139564912

相关文章

  • 热点搜索词统计
    一、项目背景要求根据用户上网的搜索记录对每天的热点搜索词进行统计,以了解用户所关心的热点话题。要求完成:1.统计每天搜索数量前3名的搜索词(同一天中同一用户多次搜索同一个搜索词视为1次)2.使用scala编程,并用sparksql运行结果二、数据文件字段分别是:时间,用户,搜索词......
  • 基于启发式蝙蝠算法、粒子群算法、花轮询算法和布谷鸟搜索算法的换热器PI控制器优化(Ma
    ......
  • KDY----BFS_宽度优先搜索习题
    题目由可达鸭提供,本篇够  字,阅读时注意休息和暂停。一、课时提交情(AC情况)T1、武士风度的牛  100/100(老师带着做的。)T2、抓住那头牛100/100T3、仙岛求药  100/100T4、TheCastle 0/100(时间不够了,就看了看题目。)二、目录T1、武士风度的牛T2、抓住那头牛T......
  • Ten Tips for Smarter Google Searches (十个更聪明使用 Google 搜索的技巧)
    TenTipsforSmarterGoogleSearches十个更聪明使用Google搜索的技巧 Date:Dec1,2006Articleisprovidedcourtesyof Que.Returntothearticle MostpeopleuseGoogleinaveryinefficientandoftenineffectivemanner.Ifallyoudoisenterafew......
  • AI搜索哪家强?16款产品实战测评,效率飙升秘籍!
    文章推荐AI日报|国产大模型迎来新卷王,天工MoE全球首用4090推理,马斯克计划豪掷90亿购买GPUAI日报|斯坦福团队被曝抄袭国内大模型已删库跑路!英伟达打破摩尔定律,机器人时代到来AI搜索,不只是技术,它是一种理解世界的新方式。最近Perplexity被传出正进行新一轮2.5亿美元融资,短短6个......
  • 基于鸿蒙操作———制作健康App(实现首页UI设计,顶部搜索)
    前言当前部分主要是完成首页的UI设计,学习并掌握Tabs组件的用法,可以完成页面内视图快速切换,包含TabBar和TabContent两部分实现效果项目代码Tabs组件代码import{CommonConstants}from'../common/constants/CommonConstants'@Entry@ComponentstructIndex{@S......
  • 【Java】JDBC+Servlet+JSP实现搜索数据和页面数据呈现
    目录1.功能介绍2.实现流程3.项目环境4.相关代码4.1 Maven配置4.2SQL语句4.3 Java代码4.4 HTML代码4.5 JSP代码5.结果展示(原创文章,转载请注明出处)博主是计算机专业大学生,不定期更新原创优质文章,感兴趣的小伙伴可以关注博主主页支持一下,您的每一个点赞、......
  • (nice!!!)LeetCode 312. 戳气球(区间dp ||记忆化dfs )
    312.戳气球思路:经典区间dp问题。方法一,区间dp。状态dp[i][j]表示:ij这个区间能获得的最大硬币数量。那么我们就可以枚举区间ij的每一个点,为该区间最后一个戳破的气球。细节看注释classSolution{public:intmaxCoins(vector<int>&nums){intn=nums.siz......
  • 淘宝/天猫商品信息获取与搜索优化:详解API接口在商品详情获取与关键字搜索中的应用
    在数字化时代,电商平台的API接口成为了连接商家、开发者与消费者的重要桥梁。淘宝和天猫作为中国领先的电商平台,提供了丰富的API接口,使得商家和开发者能够更加便捷地获取商品信息和实现商品搜索功能。本文将详细介绍淘宝/天猫的商品详情API接口和按关键字搜索商品API接口,探讨如......
  • C语言二叉平衡搜索树
    AVL(二叉平衡搜索树)的概念和思路任意一个节点左子树高度-右子树高度<=1要想让BST保持平衡,必须在每一次插入、删除之后,检查是否其左右子树满足平衡的定义如果不满足,就做“旋转”操作,使其恢复平衡加入以上平衡策略算法后的BST,称为AVL,AVL是一种绝对平衡的二叉树#include......