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

网站建设 工商注册网站做集群

网站建设 工商注册,网站做集群,免费申请qq号注册新账号,起名网站开发想要精通算法和SQL的成长之路 - 受限条件下可到达节点的数目 前言一. 相交链表#xff08;邻接图和DFS#xff09; 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 相交链表#xff08;邻接图和DFS#xff09; 原题链接 public int reachableNodes(int n, int[][] ed… 想要精通算法和SQL的成长之路 - 受限条件下可到达节点的数目 前言一. 相交链表邻接图和DFS 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 相交链表邻接图和DFS 原题链接 public int reachableNodes(int n, int[][] edges, int[] restricted) { }我们读一下题目我们总结几个核心的点 无向图。受限节点。题目用一个二维数组代表图。 针对第一个点和第三个点我们用何种方式通过二维数组来构建出一个无向图 使用邻接图。在Java当中邻接图可以用下面一个模板来完成 ListInteger[] adj new List[n]; // 初始化每个数组 for (int i 0; i n; i) {adj[i] new ArrayList(); } for (int[] edge : edges) {adj[前继节点].add(后继节点); }那么由于本题目又特意声明了它是一个无向图我们前后顺序换一下再存储一次即可 adj[前继节点].add(后继节点); adj[后继节点].add(前继节点);针对第二点受限节点。我们用一个一维数组代表每个元素是否受限下标即是对应的元素值 boolean[] limits new boolean[n]; for (int i : restricted) {limits[i] true; }有了这些数据我们就可以通过DFS去递归遍历这颗树 我们指定对应的元素 0 作为根节点向后继节点递归。同时因为无向的关系我们在递归节点的时候需要做判断当前节点并不是父节点满足条件才可往深层递归。否则就会出现死循环。 例如以上图的案例最终的无向图数据部分如下 0–1,4,5。1-0,1,3 死循环逻辑如下 第一层倘若当前节点为1的时候根据顺序深层递归。递归节点0。第二层当前遍历节点为0发现0的相邻节点有1开始递归节点1。回到第一步。第三层… 因此我们在dfs递归的时候需要有两个参数 当前节点。当前节点的父节点。 同时我们用一个全局变量count代表递归的数量即是题目返回要求 void dfs(int root, int pre) {count;for (int node : adj[root]) {if (!limits[node] node ! pre) {dfs(node, root);}} }最终完整代码如下 public class Test2368 {int count 0;ListInteger[] adj;boolean[] limits;public int reachableNodes(int n, int[][] edges, int[] restricted) {// 邻接图数据构建adj new List[n];for (int i 0; i n; i) {adj[i] new ArrayList();}for (int[] edge : edges) {adj[edge[0]].add(edge[1]);adj[edge[1]].add(edge[0]);}// 构建受限节点数组limits new boolean[n];for (int i : restricted) {limits[i] true;}// 开始递归从根节点0开始父节点不存在我们传一个-1dfs(0, -1);return count;}void dfs(int root, int pre) {count;// adj[root] 就是与 当前节点 所有的相邻节点for (int node : adj[root]) {// 非受限节点并且当前节点并不是父节点的时候继续往下递归if (!limits[node] node ! pre) {dfs(node, root);}}} }
http://www.sadfv.cn/news/27817/

相关文章:

  • 深圳做电商平台网站dw软件是做什么用的
  • 东莞网站建设58巨好用企业网站源码
  • 网站架构有哪些网站缩放代码
  • 泰安市住房与城乡建设局网站org后缀做网站行
  • 网站建设公司兴田德润专业wordpress怎么做小程序
  • 建设银行茂名网站动态域名网站
  • 拖拽式网站建设费用做公司网站按年收费
  • 网站创意的技术wordpress关闭页面评论
  • 培训销售网站建设商务网站建设用的是什么软件
  • 学校网站建设问卷调查平面设计哪里学
  • 网站建设 项目背景沈阳求做商城 网站
  • 向搜索引擎提交网站地图微信微网站模版
  • 重庆 网站设计如何制作个人网页缴费
  • 宁晋网站建设多少钱工业设计创意网站
  • 成都网站建设行业分析假快递单制作软件app
  • 房屋网站东莞的网站建设公司
  • 佛山制作网站公司推荐seo站内优化培训
  • 网站自助搭建平台格朗图手表网站
  • 有什么网站建设类岗位外贸网站建设可以吗
  • 什么网站时候做伪静态中国有多少网站有多少域名
  • 建设银行南通城区网站wordpress4.9.8 php版本
  • 减压轻松网站开发网络营销工具的特点
  • 天津企业网站建设哪家好软件开发流程模型有哪些
  • 公司 网站 模板办公装修怎么设计
  • 外包网站设计公司开发公司自渠工作感悟
  • 写作网站招聘WordPress社工库
  • 盐田做网站外贸资讯平台
  • 安卓系统app网站建设优化服务机构
  • 汽车网站建设策划方案网站开发的ie兼容做到9
  • 网站制作器手机版柳州seo培训