
刷题笔记
文章平均质量分 91
分享一些数据结构算法题的解题思路
比奇堡的天没有云
不会画图的程序员不是一个好作家
展开
-
回溯算法之子集问题
本文讲解回溯算法中的另一类问题,也就是子集问题。子集问题和组合问题类似,只是收集结果的时机不同。如果对组合问题不太了解,可以看一下我的这两篇文章回溯算法之组合和排列问题和回溯算法之组合和排列结果如何去重。原创 2025-03-01 10:22:44 · 517 阅读 · 0 评论 -
回溯算法之组合和排列结果如何去重
回溯算法中有两个难点:一是剪枝,二是去重。剪枝是指在回溯搜索过程中,根据一定的条件判断,提前终止某些不可能产生最优解或有效解的搜索分支,从而减少搜索量,提高算法效率。去重指在回溯算法生成所有可能解的过程中,去除重复的解,确保最终结果集中的每个解都是唯一的。排序 + 标记先对输入的数组进行排序,这样相同的元素会相邻。在回溯过程中,使用一个标记数组来记录每个元素是否已经被使用过。当遇到相同元素时,如果该元素的前一个相同元素没有被使用过,那么当前元素就不能使用,否则会产生重复组合。原创 2025-02-25 20:56:07 · 1087 阅读 · 0 评论 -
回溯算法之组合和排列问题
回溯算法是一种通过尝试所有可能的解决方案来解决问题的算法策略,它通常用于求解组合优化、排列组合、路径搜索等类型的问题,是一种暴力求解的算法。原创 2025-02-25 00:04:17 · 1103 阅读 · 0 评论