当前位置: 首页 > news >正文

2017网站设计尺寸网站建设 工作职责

2017网站设计尺寸,网站建设 工作职责,上海企业登记网络服务平台,3d建模培训班一般多少钱BFS的基本概念 BFS 是广度优先搜索#xff08;Breadth-First Search#xff09;的缩写#xff0c;是一种图遍历算法。它从给定的起始节点开始#xff0c;逐层遍历图中的节点#xff0c;直到遍历到目标节点或者遍历完所有可达节点。 BFS 算法的核心思想是先访问当前节点的…BFS的基本概念 BFS 是广度优先搜索Breadth-First Search的缩写是一种图遍历算法。它从给定的起始节点开始逐层遍历图中的节点直到遍历到目标节点或者遍历完所有可达节点。 BFS 算法的核心思想是先访问当前节点的所有邻居节点然后再访问邻居节点的邻居节点依此类推直到遍历完整个图。 BFS 模版 BFS 使用队列Queue数据结构来辅助实现它按照先进先出FIFO的顺序管理待访问的节点。用**集合Set**来辅助节点是否已经被访问算法的基本流程如下 将起始节点放入队列中并标记为已访问。从队列中取出一个节点访问该节点,判断该节点是否符合条件。将该节点的所有未访问过的邻居节点加入队列并标记为已访问。重复步骤 2 和步骤 3直到队列为空。 模版1不必记录深度 function BFS(start, target) {const queue []; // 核心数据结构const visited new Set(); // 避免走回头路// 将起始节点放入队列中并标记为已访问。queue.push(start); visited.add(start);while (queue.length 0) {const sz queue.length;const cur queue.shift();/* 划重点这里判断是否到达终点 */if (cur target)return step;/* 将 cur 的所有未访问过的邻居节点加入队列并标记为已访问。 */for (const x of cur.adj()) {if (!visited.has(x)) {queue.push(x);visited.add(x);}}} }模版2需要记录深度的 function BFS(start, target) {const queue []; // 核心数据结构const visited new Set(); // 避免走回头路// 将起始节点放入队列中并标记为已访问。queue.push(start); visited.add(start);let step 0; // 记录扩散的步数while (queue.length 0) {const sz queue.length;/* 将当前队列中的所有节点向四周扩散 */for (let i 0; i sz; i) {const cur queue.shift();/* 划重点这里判断是否到达终点 */if (cur target)return step;/* 将 cur 的所有未访问过的邻居节点加入队列并标记为已访问。 */for (const x of cur.adj()) {if (!visited.has(x)) {queue.push(x);visited.add(x);}}}/* 划重点更新步数在这里 */step;} }BFS 算法通常用于以下场景 寻找两个节点之间的最短路径。在树或图中寻找特定深度或层级的节点。检查图是否是连通的。拓扑排序。解决迷宫问题等。 例题 111 二叉树的最小深度 给定一个二叉树找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明叶子节点是指没有子节点的节点。 var minDepth function(root) {if(root null){return 0;}// 记录深度let step 0;// BFS关键数据结构let queue [];let visited new Set();queue.push(root);visited.add(root);while(queue.length 0){let size queue.length;for(let i 0;isize;i){/* 划重点这里判断是否到达终点 */let node queue.shift();if(node.left null node.right null){return step1;}/* 将 cur 的所有未访问过的邻居节点加入队列并标记为已访问。 */if(node.left ! null !visited.has(node.left)){queue.push(node.left);visited.add(node.left);}if(node.right ! null !visited.has(node.right)){queue.push(node.right);visited.add(node.right);}}step;}return step; };863.二叉树中所有距离为 K 的结点 给定一个二叉树具有根结点 root 一个目标结点 target 和一个整数值 k 。 返回到目标结点 target 距离为 k 的所有结点的值的列表。 答案可以以 任何顺序 返回。 思路 需要我们在树中寻找特定深度或层级的节点但是又不是从根节点开始因此需要我们将树 转化成 图。 可以通过哈希表和DFS将树转化成图 var distanceK function(root, target, k) {// 起点是target先通过哈希表DFS将树转化成图const parents getParents(root);// 结果数组let ans []// BFS关键数据结构let queue []const visited new Set()queue.push(target);visited.add(target.val);// 记录深度let step 0;while(queue.length){// 遍历每一层的节点const len queue.length;for(let i 0;ilen;i){// 判断当前节点是否符合条件。const node queue.shift();if(step k){ans.push(node.val);}// 将相邻的节点都放入到if(node.left !visited.has(node.left.val)){queue.push(node.left);visited.add(node.left.val);}if(node.right !visited.has(node.right.val)){queue.push(node.right);visited.add(node.right.val);}if(parents.has(node.val) !visited.has(parents.get(node.val).val)){queue.push(parents.get(node.val));visited.add(parents.get(node.val).val);}}// 遍历完一层后深度1step;}return ans;};function getParents(root) {const parents new Map();const findParents (root) {if (root.left) {parents.set(root.left.val, root);findParents(root.left);}if (root.right) {parents.set(root.right.val, root);findParents(root.right);}};findParents(root);return parents; }
http://www.hkea.cn/news/14347284/

相关文章:

  • 网站建设作业网站设计怎么做才好看
  • 上海做网站那家好绍兴免费网站建站模板
  • 济南品牌网站建设公司百度信息流是什么
  • wordpress主题 网站大全网站销售的优势
  • 无法访问网站网页制作培训班课程
  • 网站开发怎么挣钱搜索引擎营销的内容和层次有哪些
  • 做网站跟app需要多少钱如何制作自媒体短视频
  • 六安市 网站集约化建设电烤箱做蛋糕网站
  • 建个公司网站要多少钱大连网站制作最好的公司
  • 漳州市住房与城乡建设部网站网站开发的内容
  • 阜阳网站建设费用wordpress文章关键字怎么添加
  • 网站建设龙兵科技亚马逊云服务器收费标准
  • 逐鹿网站建设企业品牌推广价格
  • 南京电商网站设计公司南京一对一网站建设
  • 怎么做网站赚钱放广告自学做网站可以吗
  • 网站设计要学哪些网站规划与建设实验心得
  • 欧美企业网站模板seo黑帽是什么
  • 用来做微网站的网站建设优化广告流量
  • 我的网站搜索不到了宜宾网站建设宜宾
  • 网站个人微信收款方案免费企业信息黄页网
  • 三河网站建设公司群英云服务器
  • 宁波网站设计首选荣盛网络建设网站目标
  • 网站建设分为几个阶段湛江cms建站
  • 普集网站制作网易企业邮箱收费吗
  • 网站快备asp网站制作
  • 做网站的工作叫什么做英文网站 是每个单词首字母大写 还是每段落首字母大写
  • 网站建设平台安全问题有哪些方面网站会员充值做哪个分录
  • 温州哪里有做网站榆树市住房和城乡建设局网站
  • 网站首页跳出弹窗苏州相城区最新楼盘价格
  • 网站开发的大学生应届简历seo算法