
算法之回溯
文章平均质量分 58
以实战为线索,深入刨析每一道经典例题
June`
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
专题六:记忆化搜索(递归优化的秘密武器)
首先我们要先理解递归的解法:也就是右边那个递归展开图,不难发现递归时间复杂度很大O(2^N)我们发现d(3)的展开左边和右边是一样的,此时是不是可以想方法当左边递归下去返回d(3)时把d(3)的结果记住,也就是充当备忘录的身份(这个备忘录可以是一个数组/哈希表等)记住了当右边递归下去时,发现需要用d(3),而备忘录当中又有d(3),就不用在展开,直接用时间复杂度就会减小,这种方法就叫记忆化搜索,(带备忘录的递归)。原创 2025-05-20 14:49:54 · 909 阅读 · 0 评论 -
专题五:floodfill算法(扫雷游戏精讲)
M表示:未挖出的地雷E表示:未挖出的空白方块什么叫未挖出,就是你没玩的时候,棋盘是什么样的,就是你站在上帝视角看待棋盘B:表示挖出来是空白的,如果是空白的要延伸到有数字的才会停止1~8是如果你周围有地雷,当你挖出来时就显示周围的地雷数X:表示挖出来的地雷,如果挖出来是地雷就用X表示,并且游戏结束看示例:一开始点了左下角,左下角是空白就用B表示,知道遇到数字就停返回:当你点一次,返回棋盘的结果算法原理分析:其实本质就是一道深度搜索的题目。原创 2025-05-19 23:14:49 · 267 阅读 · 0 评论 -
专题五:floodfill算法(太平洋大西洋水流问题)
整张图,左边深蓝的是太平洋,右边浅蓝的是大西洋,你需要在矩阵中找到一个点,使其可以流向太平洋又可以流向大西洋,并且你每次流的时候只能由高到低,或者相等到相等。原创 2025-05-19 18:17:07 · 336 阅读 · 0 评论 -
专题五:floodfill算法(图像渲染深度优先遍历解析与实现)
给一个初始坐标(sr,sc)比如示例中的粉色的1,如果周围上下左右都是1,就是连通块(性质相同的地方),把它涂上颜色(2)即可,右下角不算,因为不算对角线的。原创 2025-05-19 10:45:33 · 468 阅读 · 0 评论 -
FloodFill算法:洪水般的图像处理艺术
Flood Fill 是一种简单但强大的算法,核心在于。原创 2025-05-18 18:23:28 · 1197 阅读 · 0 评论 -
专题四:综合练习(最经典的回溯题之N皇后详解)
下过国际象棋的都知道,皇后可以在它所在的行,所在的列,还有所在的斜线进行移动这道题就是给n个皇后,nxn的棋盘,让这n个皇后不能互相吃彼此。原创 2025-05-18 11:43:08 · 324 阅读 · 0 评论 -
专题四:综合练习(组合总和的暴搜dfs)
以leetcode39题为例。原创 2025-05-17 16:43:03 · 217 阅读 · 0 评论 -
专题四:综合练习(组合问题的决策树与回溯算法)
以leetode77题为例。原创 2025-05-17 15:30:20 · 401 阅读 · 0 评论 -
专题四:综合练习(括号组合算法深度解析)
给一个数字n,返回合法的所有的括号组合。原创 2025-05-17 14:51:59 · 449 阅读 · 0 评论 -
专题四:综合练习(全排列去重算法解析)
在全排列的基础上去除掉重复的元素。原创 2025-05-17 12:10:13 · 337 阅读 · 0 评论 -
专题四:综合练习( 找出所有子集的异或总和再求和)
找到每个子集,然后子集中的元素异或之后全部相加。原创 2025-05-13 22:30:31 · 617 阅读 · 0 评论 -
专题三:穷举vs暴搜vs深搜vs回溯vs剪枝(全排列)决策树与递归实现详解
给一个数组,列出它的全排列。原创 2025-05-13 18:09:41 · 1058 阅读 · 0 评论 -
专题二:二叉树的深度搜素(二叉树的所有路径)重点理解回溯算法的”恢复现场“
全局变量的path:需要我们手动恢复现场(需要掌握,因为难题中会用到这种方法)函数头的path:函数自动帮我们完成恢复现场 (难题不易设计函数头)代码编写:回溯的恢复现场在哪???//这一句完之后就回溯了而且你没有改变这一层的path,这一层的path还是原来那个path你传进去的那个path进去之后是下一层的,你回退到这一层根本没有改变函数自动帮我们恢复现场了注意这里不要加&(引用)引用就类似全局变量;原创 2025-05-13 16:55:53 · 459 阅读 · 0 评论 -
专题二:二叉树的深度搜索(验证二叉搜索树)
左结点小于根结点,右结点大于根节点。原创 2025-05-13 15:46:08 · 273 阅读 · 0 评论 -
专题二:二叉树的深度搜索(二叉树剪枝)
也就是当你的子树全为0的时候就可以剪掉。原创 2025-05-12 23:25:48 · 363 阅读 · 0 评论 -
专题二:二叉树的深度搜索(求根节点到叶节点数字之和)
从根到叶子结点的一条路径组成的数字,所有数字加在一起返回。原创 2025-05-12 22:33:32 · 475 阅读 · 0 评论 -
专题二:二叉树的深度优先搜索
以leetcode2331题为例。原创 2025-05-12 21:15:24 · 326 阅读 · 0 评论 -
专题一:汉诺塔问题:递归算法的精妙解析
请先看我的回溯算法的第一篇文章以leetcode汉诺塔问题讲解。原创 2025-05-11 13:45:10 · 396 阅读 · 0 评论 -
回溯算法:深度优先搜索的终极指南
关于二叉树的遍历:这里讲解后序遍历,左右根,当我们遍历一个结点时,先考虑左子树,右子树,根,遍历左子树时,又把左子树看成根节点,在左右根,依次递归下去。我们在研究主问题时,发现子问题也是相同的,如果设解决主问题需要用到函数f,解决相同的子问题也会用到f,因为他们是相同的问题,此时就会出现。以走迷宫为例:每走到一个拐点,都可以分左右,那我第一个往左走,发现行不通,就回到上一级的这个操作就称之为回溯,然后在由上一级往另一边走。在归并那里,就是一个数组,然后标记一下数组的左边和右边,完成数组的排序。原创 2025-05-11 11:56:46 · 1013 阅读 · 0 评论