随笔分类 - 搜索(DFS,BFS)
DFS,BFS是基本的易学的强大的搜索算法,能解决循环解决不了的问题
摘要:找到所有根到叶子的路径 深度优先搜索(DFS), 即二叉树的先序遍历。
阅读全文
摘要:二叉树的层次遍历 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x)
阅读全文
摘要:题意是倒过来层次遍历二叉树 下面我介绍下BFS的基本框架,所有的BFS都是这样写的 struct Nodetype { int d;//层数即遍历深度 KeyType m;//相应的节点值 } queue<Nodetype> q; q.push(firstnode); while(!q.empty(
阅读全文
摘要:对于N-Queens的每种情况,回答出每种情况的N-Queens的排列数。 l,r和c是每种类型的格子是否有棋子。 l判断的是这样的对角线的格子 r判断的是这样的对角线的格子 c 判断的是这样的竖线格子 枚举每行放一颗棋子,判断是否与前面冲突,如果不冲突一直到底就让答案+1 这种搜索也可以参考DFS
阅读全文
摘要:统计联通区域块的个数,简单dfs,请可以参考DFS框架:Leetcode 130 Surrounded Regions DFS class Solution { public: int m, n; bool is_in(int x, int y) { return (x < m ) && (x >=
阅读全文
摘要:将内部的O点变成X input X X X XX O O X X X O XX O X X output X X X XX X X XX X X XX O X X DFS的基本框架是 1 void dfs(int now,int d){ 2 if(终止条件) { 3 做相应的操作; 4 return
阅读全文