![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
dfs/bfs
深度优先搜素、广度优先搜索
来深圳
在校大学生
展开
-
leetcode全排列-Golang
46. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输出:[[0,1],[1,0]] 示例 3: 输入:nums = [1] 输出:[[1]] var ans [][]int var list []int func permute(nums [原创 2022-05-11 23:43:42 · 264 阅读 · 0 评论 -
二叉树前序、中序、后序遍历,递归&迭代
94. 二叉树的中序遍历 // 迭代实现 func inorderTraversal1(root *TreeNode) (res []int) { stk := make([]*TreeNode, 0) for len(stk) > 0 || root != nil { for root != nil { stk = append(stk, root) root = root.Left } root = stk[len(stk)-1] stk = stk[:len(st原创 2022-03-30 12:17:22 · 687 阅读 · 0 评论 -
回溯法 leetcode题集
回溯法解决问题的过程实质上是在树形结构中从根节点开始进行深度优先遍历。 如果在前往某个节点时对问题的解的状态进行了修改,那么在回溯到它的父节点时要记得清除相应的修改。 如果明确知道某个子树没有必要遍历,那么在遍历的时候应该避开这些子树以优化效率。通常将使用回溯法时避开遍历不必要的子树的方法成为剪枝 78. 子集 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums = [1,2,3原创 2022-05-10 17:46:37 · 175 阅读 · 0 评论 -
2023省赛 岛屿个数(bfs解法)
【代码】岛屿个数(bfs解法)原创 2023-06-06 22:15:35 · 128 阅读 · 0 评论 -
2023省赛 飞机降落(dfs)
看数据量 fact(10) = 3628800. 直接暴力dfs。原创 2023-06-07 16:19:55 · 135 阅读 · 0 评论 -
回溯法 backTrack 力扣题
回溯法 回溯法又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点” 回溯是一种算法思想,可以用递归实现。通俗点讲回溯就是一种试探. 在回溯法中,每次扩大当前部分解时,都面临一个可选的状态集合,新的部分解就通过在该集合中选择构造而成。这样的状态集合,其结构是一棵多叉树,每个树结点代表一个可能的部分解,它的儿子是在它的基础上生成的其他部分解。树根为初始状态,这样的原创 2021-07-24 14:37:50 · 135 阅读 · 0 评论 -
P1605 迷宫 - dfs
题目: 题目背景 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。 输入格式 第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。 输出格式 给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。 输入输出样例 输入 2原创 2020-12-23 09:24:44 · 96 阅读 · 0 评论