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

福建嘉瑞建设工程有限公司网站模版网站

福建嘉瑞建设工程有限公司网站,模版网站,网站屏蔽省份,长10米宽3米的店面设计收集树中金币 力扣链接:2603. 收集树中金币 题目描述 给你一个 n 个节点的无向无根树,节点编号从 0 到 n - 1 。给你整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间有一条边。再给…

收集树中金币

力扣链接:2603. 收集树中金币

题目描述

给你一个 n 个节点的无向无根树,节点编号从 0 到 n - 1 。给你整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间有一条边。再给你一个长度为 n 的数组 coins ,其中 coins[i] 可能为 0 也可能为 1 ,1 表示节点 i 处有一个金币。

一开始,你需要选择树中任意一个节点出发。你可以执行下述操作任意次:

收集距离当前节点距离为 2 以内的所有金币,或者
移动到树中一个相邻节点。
你需要收集树中所有的金币,并且回到出发节点,请你返回最少经过的边数。

如果你多次经过一条边,每一次经过都会给答案加一。

示例

示例1:
在这里插入图片描述
输入:coins = [1,0,0,0,0,1], edges = [[0,1],[1,2],[2,3],[3,4],[4,5]]
输出:2
解释:从节点 2 出发,收集节点 0 处的金币,移动到节点 3 ,收集节点 5 处的金币,然后移动回节点 2 。

示例2
在这里插入图片描述
输入:coins = [0,0,0,1,1,0,0,1], edges = [[0,1],[0,2],[1,3],[1,4],[2,5],[5,6],[5,7]]
输出:2
解释:从节点 0 出发,收集节点 4 和 3 处的金币,移动到节点 2 处,收集节点 7 处的金币,移动回节点 0 。

官解思路

在这里插入图片描述
这一步可以使用基于广度优先搜索的拓扑排序解决。我们首先将所有「叶节点」加入队列中,随后不断从队列中取出节点,将它标记为删除,并判断其唯一相邻的节点是否变为「叶节点」。如果是,就将相邻的节点也加入队列中。
在这里插入图片描述
这一步同样可以使用基于广度优先搜索的拓扑排序解决。我们进行 222 次如下的操作:首先将所有「叶节点」加入初始队列中,随后不断从初始队列中取出节点,将它标记为删除。
在这里插入图片描述

Java代码

class Solution {public int collectTheCoins(int[] coins, int[][] edges) {int n = coins.length;List<Integer>[] g = new List[n];for(int i = 0; i < n; i++) {g[i] = new ArrayList<Integer>();}int[] degree = new int[n];for(int[] edge : edges) {int x = edge[0], y = edge[1];g[x].add(y);g[y].add(x);degree[x]++;degree[y]++;}int rest = n;/* 删除树中所有无金币的叶子节点,直到树中所有的叶子节点都是含有金币的 */Queue<Integer> queue = new ArrayDeque<Integer>();for(int i = 0; i < n; i++) {if(degree[i] == 1 && coins[i] == 0) {queue.offer(i);}}while(!queue.isEmpty()) {int u = queue.poll();degree[u]--;rest--;for(int v : g[u]) {degree[v]--;if(degree[v] == 1 && coins[v] == 0) {queue.offer(v);}}}/* 删除树中所有的叶子节点, 连续删除2次 */for(int x = 0; x < 2; x++) {queue = new ArrayDeque<Integer>();for(int i = 0; i < n; i++) {if(degree[i] == 1) {queue.offer(i);}}while(!queue.isEmpty()){int u = queue.poll();degree[u]--;rest--;for(int v : g[u]) {degree[v]--;}}}return rest == 0 ? 0 : (rest - 1) * 2;}
}
http://www.lakalapos1.cn/news/74/

相关文章:

  • 使用 加速乐 网站变慢在过没wordpress火吗
  • 优秀网站开发互联网软件开发是什么
  • 新手学网站建设网站当前位置怎么做
  • 网站后台系统的易用性网站制作合同范本
  • wordpress网站存放在镇江一网推网络技术有限公司
  • 茂名快速建站模板wordpress下载链接框
  • html写手机网站在北京做家教的网站
  • 17网站一起做网店网页设计作品作业成品免费下载
  • 成都建站seo毕业设计代做网站都有哪些
  • 网站建设方案 规划网站策划书的撰写
  • 广西智能网站建设方案影视会员代理平台网站
  • 百度站长平台怎么验证网站网新科技集团有限公司官网
  • 福州网站建设出格网络网站方案制作
  • 建设国际互联网网站杭州网站制作外包
  • 一个空间多个网站教育模板网站建设
  • 网站策划网站建设企业英文网站推广公司
  • dede自动生成网站地图网站效果图用什么做
  • 企业门户网站建设方案桂林城乡建设局网站
  • 山东网站建设工作室打广告
  • 建材网站模板漫画网站源码
  • 网站不能访问的原因优享wordpress
  • 保定企业免费建站网站开发的试题
  • 学做网站的学校wordpress入门使用
  • app和手机网站的区别是什么太平洋建设集团有限公司网站
  • 网站的搜索功能一般怎么做东莞家具饰品东莞网站建设
  • asp 网站发布器德文网站建设
  • 玉环住房与城乡建设规划局网站上海工作网站
  • 苏州网站设计哪家好做网站之前需要准备什么软件
  • 如何做内网网站jeecg 做网站
  • 网站制作小图标网络营销专业就业