回溯

kronos.荒7 天前
python·回溯
非递减序列(python)思路:非递减子序列,也是一种子集问题,也需要在进入递归就收集答案。这里需要注意,因为要求是序列,所以不能排序,这里需要使用set()在树层去重。同时,对于当前遍历到的元素,不能比path里面的小,如果小,则跳过该元素的搜索。
kronos.荒9 天前
python·回溯
回溯(python)模板:def dfs(参数):if(停止条件):收集答案退出for(集合):处理节点递归函数回溯
kronos.荒11 天前
python·回溯
N皇后问题(python)描述:给定一个棋盘,求可以在棋盘上放置n个皇后的方案。对于放置皇后的位置,要求同一行同一列只能放置一个皇后。同时,斜向的45度方向也只能放置一个皇后。
kronos.荒11 天前
python·回溯
全排列2(重复元素去重、python)思路:看到需要去重的,如果不要求顺序或者是序列,首先要排序。由于数组中出现重复元素,所以需要去重。在树层上去重,如何才能知道在同一层?即当used[i-1]=0时,说明已经完成了回溯,回到了上一层。此时,当nums[i]=nums[i-1]时,说明该层出现重复元素,跳过该元素的搜索。
W230357657315 天前
动态规划·回溯·算法设计·0-1背包
0-1 背包进阶:回溯法(子集树)+ 分支限界优化 极致详解(C++ 完整实现)在上一篇 0-1 背包动态规划详解中,我们学习了自底向上填表、递归记忆化搜索等解法,核心是通过动态规划高效求解最大价值。
语戚16 天前
java·算法·leetcode·动态规划·力扣·dp·回溯
力扣 494. 目标和 —— 回溯 & 动态规划双解法全解(Java 实现)在数组与动态规划结合的面试题库中,LeetCode 494 目标和是一道极具代表性的经典题目。它以 “给数组元素添加正负号得到目标和” 为目标,既不依赖复杂数学推导,也不涉及冷门数据结构,却精准考察了回溯剪枝思想、状态定义设计、0-1 背包模型转化以及空间优化四大核心能力。看似简单的符号选择,背后藏着从暴力穷举到最优子结构的完整算法演进逻辑,也是面试官常用来检验算法思维是否严谨的高频考题。
语戚18 天前
java·算法·leetcode·力扣·剪枝·回溯·位运算
力扣 51. N 皇后:基础回溯、布尔数组优化、位运算全解(Java 实现)LeetCode 51 N 皇后问题是回溯算法的绝对经典标杆题,更是面试中考察递归逻辑、剪枝思维与空间优化的核心考点。这道题的核心是破解 “如何在 N×N 棋盘上摆放 N 个皇后,使其互不攻击”,而基础回溯遍历校验、布尔数组优化、位运算优化则是解决该问题的三大进阶思路 —— 三者从暴力到优雅、从直观到极致,在时间 / 空间复杂度与代码抽象程度上层层递进,完美对应了算法思维从入门到高阶的成长路径。
小辉同志22 天前
开发语言·c++·leetcode·回溯
79. 单词搜索回溯:79. 单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。
xiaoye-duck24 天前
c++·算法·深度优先·回溯
《算法题讲解指南:递归,搜索与回溯算法--综合练习》--14.找出所有子集的异或总和再求和,15.全排列Ⅱ,16.电话号码的字母组合,17.括号生成🔥小叶-duck:个人主页❄️个人专栏:《Data-Structure-Learning》《C++入门到进阶&自我学习过程记录》 《算法题讲解指南》--优选算法 《算法题讲解指南》--递归、搜索与回溯算法 《算法题讲解指南》--动态规划算法
小辉同志25 天前
c++·算法·力扣·剪枝·回溯
39. 组合总和回溯:39. 组合总和给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
xiaoye-duck25 天前
c++·算法·回溯
《算法题讲解指南:递归,搜索与回溯算法--穷举vs深搜vs回溯vs剪枝》--12.全排列,13.子集🔥小叶-duck:个人主页❄️个人专栏:《Data-Structure-Learning》《C++入门到进阶&自我学习过程记录》 《算法题讲解指南》--优选算法 《算法题讲解指南》--递归、搜索与回溯算法 《算法题讲解指南》--动态规划算法
季明洵1 个月前
java·数据结构·算法·leetcode·回溯
回溯介绍及实战回溯算法一本质上是一种深度优先搜索。它的核心思路是:从一个初始状态出发,逐步构建解,在每一步尝试所有可能的选择;如果当前路径满足条件,就继续深入;如果不满足或已经无法得到正确结果,就撤销上一步操作(回溯),再尝试其他选择。
_小草鱼_1 个月前
算法·深度优先·图论·回溯·递归
【搜索与图论】DFS算法(深度优先搜索)DFS 是一种用于遍历或搜索树/图的算法。核心思想是“一条路走到黑,撞了南墙就回头”。回溯:走不通就回头,恢复原来的样子,继续尝试别的可能。
We་ct1 个月前
前端·数据结构·算法·leetcode·typescript·深度优先·回溯
LeetCode 22. 括号生成:DFS回溯解法详解在LeetCode的字符串类题目中,「括号生成」绝对是回溯算法的经典入门题——它不仅考察对括号有效性的判断,更考验如何通过递归回溯,高效枚举所有合法组合,避免无效枚举带来的冗余计算。今天就来拆解这道题,从思路分析到代码实现,再到细节优化,带你彻底搞懂这道高频面试题。
少许极端1 个月前
算法·剪枝·回溯·递归
算法奇妙屋(三十一)-递归、回溯与剪枝的综合问题 4重点是字符必须是上下左右四个方位相邻的和上一道题思路很像, 只是细节处有所不同
We་ct1 个月前
前端·算法·leetcode·typescript·深度优先·个人开发·回溯
LeetCode 79. 单词搜索:DFS回溯解法详解在LeetCode的中等难度题目中,「单词搜索」是一道经典的DFS(深度优先搜索)+ 回溯算法应用题。它不仅考察对搜索算法的理解,更考验对边界条件的把控和空间优化的思路。今天就带大家一步步拆解这道题,从题目分析到代码实现,再到易错点总结,帮你彻底搞懂这道高频面试题。
闻缺陷则喜何志丹2 个月前
c++·算法·字典树·回溯·洛谷
【字典树 回溯】P7210 [COCI 2020/2021 #3] Vlak|普及+C++回溯 C++前缀树(字典树)Nina 和 Emilija 在纸上做游戏。刚开始,纸是空白的。在一个回合里,一个玩家将一个字母加入到纸上一个单词的末尾。接着,二者交替顺序。规定 Nina 为先手。
We་ct2 个月前
前端·数据结构·算法·leetcode·typescript·深度优先·回溯
LeetCode 46. 全排列:深度解析+代码拆解LeetCode 经典回溯题——46. 全排列,这道题是回溯算法的入门必刷题,核心考察“穷举所有可能”的思路,虽然代码不长,但每一步都藏着回溯的精髓,新手很容易在“回溯回退”这一步踩坑,今天就带着大家逐行拆解,把思路讲透。
We་ct2 个月前
前端·算法·leetcode·typescript·深度优先·个人开发·回溯
LeetCode 39. 组合总和:DFS回溯解法详解拆解 LeetCode 经典回溯题——39. 组合总和,这道题是回溯算法的入门必练题目,核心考察「无重复组合」与「元素可重复选取」的处理逻辑,学会这道题,能轻松应对一类回溯组合问题。
ValhallaCoder2 个月前
数据结构·python·算法·回溯
hot100-回溯II22. 括号生成 - 力扣(LeetCode)79. 单词搜索 - 力扣(LeetCode)(i,j,k) 表示判断以网格的 (i,j) 位置出发,能否搜索到单词 word[k..],其中 word[k..] 表示字符串 word 从第 k 个字符开始的后缀子串。如果能搜索到,则返回 true,反之返回 false。 对每一个位置 (i,j) 都调用函数k(i,j,0) 进行检查:只要有一处返回 true,就说明网格中能够找到相应的单词。【visited是为了防重复】