搜索算法
文章平均质量分 71
楠c
这个作者很懒,什么都没留下…
展开
-
回溯(Flash back)学习
回溯是一种通过穷举所有可能情况来找到所有解的思想。如果一个候选解最后被发现并不是可行解,回溯思想会舍弃它,并在前面的一些步骤做出一些修改,并重新尝试找到可行解。回溯一般会结合在搜索算法中 电话号码组合 Map建立号码与字符串映射。 在代码中,DFS里,curStr+e即一个回溯的过程。例如当前是cur是空串,e依次被映射为abc,先从a开始,继续调用DFS,由于index++,所以e依次被映射到def,所以curStr现在是a,就开始和def两两组合,符合条件入结果数组。执行完后回溯,curStr成为b,原创 2021-06-23 17:34:45 · 268 阅读 · 1 评论 -
广度优先搜索(Breadth First Search) 学习
目录员工重要性N叉树的层序遍历腐烂的橘子单词接龙最小基因变化打开转盘锁 借助队列其先进先出的特点,将要搜索的放在队尾,他是一种地毯式搜索,所以第一次找到目标,一定是最短路径 员工重要性 /* // Definition for Employee. class Employee { public: int id; int importance; vector<int> subordinates; }; */ class Solution { public: in原创 2021-06-23 16:34:26 · 164 阅读 · 0 评论 -
深度优先搜索(Depth First Search)学习
不撞"边界"不回头。代表性的便是,二叉树的前序,中序,后序遍历方法。 员工重要程度 编号代表遍历顺序,由深到浅。 /* // Definition for Employee. class Employee { public: int id; int importance; vector<int> subordinates; }; */ class Solution { public: //也可以不用每次传哈希表,把它当做一个私有成员变量 int DFS(un原创 2021-06-23 14:44:49 · 304 阅读 · 0 评论