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

广州网站改版设计公司网站建设济宁

广州网站改版设计,公司网站建设济宁,国内新闻,漯河网站建设服务公司BFS#xff08;宽搜#xff09; 宽度优先遍历和深度优先遍历组成了大家熟悉的搜索算法#xff0c;这两种算法也是蓝桥杯之类竞赛题的常考思想#xff0c;正巧马上蓝桥杯临近#xff0c;博主也是刷了很多BFS相关的题型#xff0c;在这篇文章中会从力扣上选取三道简单的宽搜…BFS宽搜 宽度优先遍历和深度优先遍历组成了大家熟悉的搜索算法这两种算法也是蓝桥杯之类竞赛题的常考思想正巧马上蓝桥杯临近博主也是刷了很多BFS相关的题型在这篇文章中会从力扣上选取三道简单的宽搜题型带大家了解BFS的模板以及对他有个初步认识。         本篇文章题目较为简单大家可以根据第一题的模板自己先去力扣上做题然后回来看题解稍后我们继续更新难度更高的宽搜题目希望大家能给个关注。 文章顺序 题目链接-》算法思路-》代码呈现。 算法摘要 宽度优先遍历是一种利用队列这种数据结构从某一点开始一层一层进行遍历的一种算法思想而BFS宽搜实际上就是一种暴力搜索算法利用宽度优先遍历来查找想要结果。 1.N叉树的层序遍历 题目链接 https://leetcode.cn/problems/n-ary-tree-level-order-traversal/description/ 算法思路 仅需多加⼀个变量⽤来记录每⼀层结点的个数然后层序遍历即可。 代码展示 /* // Definition for a Node. class Node {public int val;public ListNode children;public Node() {}public Node(int _val) {val _val;}public Node(int _val, ListNode _children) {val _val;children _children;} }; */class Solution {public ListListInteger levelOrder(Node root) {ListListInteger listsnew ArrayList();if(rootnull){return lists;}QueueNode qnew LinkedListNode();q.add(root);while(!q.isEmpty()){int szq.size();ListInteger listnew ArrayList();for(int i0;isz;i){Node curq.poll();list.add(cur.val);for(Node c:cur.children){if(c!null){q.add(c);}}}lists.add(list);}return lists;} } 2.二叉树的最大宽度 题目链接 https://leetcode.cn/problems/maximum-width-of-binary-tree/description/ 算法思路 依旧是利⽤层序遍历但是这⼀次队列⾥⾯不单单存结点信息并且还存储当前结点如果在数组中存 储所对应的下标在我们学习数据结构 - 堆的时候计算左右孩⼦的⽅式。 这样我们计算每⼀层宽度的时候⽆需考虑空节点只需将当层结点的左右结点的下标相减再加 1 即可。 但是这⾥有个细节问题如果⼆叉树的层数⾮常恐怖的话我们任何⼀种数据类型都不能存下下标的值。但是没有问题因为 • 我们数据的存储是⼀个环形的结构 • 并且题⽬说明数据的范围在 int 这个类型的最⼤值的范围之内因此不会超出⼀圈 • 因此如果是求差值的话我们⽆需考虑溢出的情况。 代码展示 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution {public int widthOfBinaryTree(TreeNode root) {if(rootnull){return 0;}int max1;QueuePairTreeNode,Integer qnew LinkedList();q.add(new Pair(root,1));while(!q.isEmpty()){int szq.size();int head0,last0;for(int i0;isz;i){PairTreeNode,Integer pq.poll();TreeNode curp.getKey();int vp.getValue();if(cur.left!null){q.add(new Pair(cur.left,v*2));}if(cur.right!null){q.add(new Pair(cur.right,v*21));}if(i0){headv;}if(i(sz-1)){lastv;}}maxmax(last-head1)?max:(last-head1);}return max;} } 3.在每个树行中找最大值 题目链接 515. 在每个树行中找最大值 - 力扣LeetCode 算法思路 层序遍历过程中在执⾏让下⼀层节点⼊队的时候我们是可以在循环中统计出当前层结点的最⼤值的。 因此可以在 bfs 的过程中统计出每⼀层结点的最⼤值。 代码展示 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ class Solution {public ListInteger largestValues(TreeNode root) {ListInteger listnew ArrayList();if(rootnull){return list;}QueueTreeNode qnew LinkedList();q.add(root);while(!q.isEmpty()){int szq.size();int maxInteger.MIN_VALUE;for(int i0;isz;i){TreeNode curq.poll();if(cur.left!null){q.add(cur.left);}if(cur.right!null){q.add(cur.right);}maxmaxcur.val?max:cur.val;}list.add(max);}return list;} } ❤️ 我是小皮侠谢谢大家都能看到这里 主页已更新Java基础内容数据结构基础数据库算法 未来会更新Java项目SpringBootRedis以及各种Java路线会用到的技术。 求点赞求收藏求评论求关注 ‍♀️谢谢大家 我的博客即将同步至腾讯云开发者社区邀请大家一同入驻https://cloud.tencent.com/developer/support-plan?invite_code2upjellgk3eow
http://www.pierceye.com/news/678226/

相关文章:

  • 外贸企业论坛网站建设找建站公司做网站注意事项
  • 莱芜亓家网站网站认证怎么认证
  • 安康做网站的公司wordpress zh_cn.po
  • 温州网页网站制作怎么看一个网站有没有做301
  • 网站主流系统2018年网站建设
  • 好的交互网站sql网站发布流程
  • 河北住房与城乡建设部网站网站管理手册
  • 学网站建设需要用哪几个软件营销型网站建设的指导原则
  • 网站建设产品价格销售型网站如何做推广
  • 免费情感网站哪个好wordpress和微信打通
  • 做网站首页尺寸大小做网站的个人心得
  • 思乐科技 成都网站建设做单页网站价格
  • 网站关键词排名全掉了汽车用品网站
  • 网站未备案可以做经营活动吗做电商运营有前途吗
  • 网站建设优化服务百度指数与百度搜索量
  • 网站添加漂浮二维码怎么做内网 wordpress慢
  • h5创建网站网页设计主题推荐
  • 35开始学网站开发崇信县门户网
  • 一站式企业服务wordpress 网站登录
  • 网站上传工具有什么甘南北京网站建设
  • 株洲做网站那家好wordpress调用当前页文章
  • 想学做网站报班免费做一个自己app
  • 网站链接查询经典的公司简介范文
  • 网站猜你喜欢代码专门做房产的网站
  • 网页设计与网站建设题库企业logo设计免费
  • 深圳比较有名的设计公司大连seo推广优化
  • 宁波住房和城乡建设局网站最新上市新手机
  • 重庆做网站公司学校做网站方案
  • 网站建站建设价格酷家乐软件下载电脑版
  • 关于做网站的搞笑段子仿淘宝网站