【leetcode】1443. Minimum Time to Collect All Apples in a Tree

Screenshot_2026-11-03-16-23-09-34.jpg 立即下载

用递归

提交代码
class Solution {
    public int minTime(int n, int[][] edges, List<Boolean> hasApple) {
        TreeNode[] nodes=new TreeNode[n];
        
        for(int i=0;i<n;i++) 
        	nodes[i]=new TreeNode(i);
        
        for(int[] e:edges) {
        		nodes[e[0]].next.add(nodes[e[1]]);
        }
        
        int res=0;
        for(TreeNode node : nodes[0].next) {
        	res+=countPath(node,hasApple);
        }
        return res;
    }
    
    private int countPath(TreeNode root, List<Boolean> hasApple) {
        int res=0;
    	if(root==null)	return 0;
    	for(TreeNode node: root.next) {
    		res+=countPath(node, hasApple);
    	}
    	if(res==0&&hasApple.get(root.val))
    		return 2;
    	else if(res==0&&!hasApple.get(root.val))
    		return 0;
    	return res+2;
    }
}

class TreeNode {
    int val;
    List<TreeNode> next=new ArrayList<>();
    TreeNode(int x) { val = x; }
}
运行结果

在这里插入图片描述

研发流程后端开发工具,提示功能开发效率 后端开发工具 立即下载

相关推荐

Cocos Creator3.5.2使用Spine切换皮肤

3、然后获取当前spine中是否有皮肤数据,如果spine连皮肤数据都没有,接着写可能会error,这里的 skins[skin],是判断皮肤列表中是否有需要更换的皮肤。2、因为spine往往意味着异步加载,换肤时也经常出现频繁异步的情况,所以下一步我们要可以判断当前spine组件里是否已经加载好了spine文件。换肤前隐藏好需要换肤的节点,避免穿帮;官网文档的换肤流程太简化,对于实际使用来说会有各种各样的问题。1、首先获取对应的spine组件。这里的skin自然是外部传入的需要换肤的皮肤名。

tc654321的博客 1818

LeetCode 1443. 收集树上所有苹果的最少时间(自底向上DFS)

1. 题目 给你一棵有 n 个节点的无向树,节点编号为 0 到 n-1 ,它们中有一些节点有苹果。 通过树上的一条边,需要花费 1 秒钟。 你从 节点 0 出发,请你返回最少需要多少秒,可以收集到所有苹果,并回到节点 0 。 无向树的边由 edges 给出,其中 edges[i] = [fromi, toi] ,表示有一条边连接 from 和 toi 。 除此以外,还有一个布尔数组 hasApple ,其中 hasApple[i] = true 代表节点 i 有一个苹果,否则,节点 i 没有苹果。 示例 1

Michael是个半路程序员 1966

【无机纳米材料科研制图——OriginLab 0205】Origin对BET吸附/脱附曲线及孔径分布制图...

此篇,我们来分享如何对BET数据进行处理和制图。 一、等温吸脱附曲线绘制 1)找到等温吸脱附文件。 一半来说,对一个样品测一次BET,会产生很多数据,具体因仪器而异。我这里的数据主要有两个文件夹,一个脱附,一个吸附,吸附文件夹中多了一个等温吸脱附的文件夹。而这...

XD_Yangf的博客 803

LeetCode题解(1443):收集无向树中所有苹果的最少移动距离(Python)

题目:原题链接(中等) 标签:树、深度优先搜索、图、图-无向图 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N+E)O(N+E)O(N+E) : 其中E为边数 O(N+E)O(N+E)O(N+E) 320ms (22.69%) Ans 2 (Python) Ans 3 (Python) 解法一(完全视作无向图的解法): def build_graph_set(edges): import collections graph

长行 564

3D Slicer肺部CT病灶体积测量:阈值法实操全流程

在医学影像分析中,病灶体积的精准测量是肿瘤评估、疗效随访和科研统计的重要基础。传统逐层手动勾画不仅耗时,且主观差异大,而基于CT值的阈值分割技术,通过设定灰度区间自动提取目标体素,能够快速生成三维分割结果,具有高效、可重复、边界标准统一的优势,尤其适用于肺部实性结节这类与周围肺实质对比度高的病灶。理解体素与CT值的关系,掌握阈值范围的设定逻辑,并配合连通域分析、边缘修正等工程化操作,即可在3D Slicer中稳定获得可靠的体积数据。本文从技术原理出发,系统梳理了DICOM导入、窗宽窗位调节、阈值选择、三维重

weixin_29050271的博客 251

ROS2+MoveIt2+Gazebo仿真实战:从零搭建六轴机械臂控制闭环

本文详细介绍了如何从零搭建一个完整的ROS2+MoveIt2+Gazebo六轴机械臂仿真控制闭环。通过手写URDF模型、配置MoveIt2运动规划、集成Gazebo物理仿真与ROS2 Control控制器,最终实现RViz中规划轨迹、Gazebo中同步执行的完整数字孪生验证平台,为机器人算法开发和硬件验证提供低成本、高效的仿真解决方案。

weixin_29093017的博客 486

leetcode--收集树上所有苹果的最少时间

 题目是LeetCode第188场周赛的第三题,链接:1443. 收集树上所有苹果的最少时间。具体描述见原题。  这道题可以直接用DFS来解决。首先需要形成图的结构,需要注意的是这是一个无向图,构建图的时候要注意这一点。然后定义一个dfs(int node, List<Boolean> hasApple)函数,从节点0开始,遍历当前节点的所有未被访问过的邻接节点nextNode,累积结果result+=dfs(nextNode, hasApple),假如结果result==0,则根据当前节点是否

JR_Chan的博客 405

Ubuntu 24.04 安装 ROS2 Jazzy

手把手教你在Ubuntu24.04上安装JazzyROS2操作系统。

weixin_74185504的博客 1万+

Leetcode 1443. Minimum Time to Collect All Apples in a Tree (python)

题目 解法1: 利用dfs,找出所有的在摘苹果的过程中会被访问的边。这些被访问的边数*2就是答案 这种做法需要保存当前路径,当发现当前路径包含苹果时,将这些边加入访问列表。这样做的坏处在于,每条边可能被加入多次,意味着时间复杂度的增加,事实证明这种做法确实不都快,刚刚过TLE的线。但利用字典或者set,还是可以不重复的记录摘苹果时需要被访问的边 class Solution: def minTime(self, n: int, edges: List[List[int]], hasApple: L

qq_37821701的博客 484

STM32H743必要外围电路分析

写在前面:这篇博客是我第一次绘制STM32最小系统板的过程记录。 2020-1-11 BOOT STM32采用ARM内核,和ARM处理器一样,都有专门的boot脚决定单片机从何处启动。 在官方数据手册的第105页,我们可以看到 系统复位后,在SYSTICK的第四个上升沿锁存BOOT引脚的值,复位后,BOOT引脚可以由用户自由配置而不会影响系统正常运行。 BOOT引脚决定了自举存储器地址,当BO...

Cui_Hongwei的博客 1万+

OpenTK简介

OpenTK 因其强大的功能、跨平台特性和灵活性,适用于多种需要图形和计算能力的应用场景,为开发者提供了丰富的可能性和创作空间。

仰望星空的博客 1980

LeetCode 1443 Minimum Time to Collect All Apples in a Tree (dfs)

Given an undirected tree consisting ofnvertices numbered from0ton-1, which has some apples in their vertices. You spend 1 second to walk over one edge of the tree.Return the minimum time in seconds you have to spend to collect all apples in the tree,...

Tc的专栏 323

lp–mspm0g3507开发板进入低功耗模式怎么退出?烧程序烧着烧着就进来了,跳线帽没动过,且报错:Texas Instruments Debugger Error: DAP Co...如何解决?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1570

[leetcode] 1443. Minimum Time to Collect All Apples in a Tree

Description Given an undirected tree consisting of n vertices numbered from 0 to n-1, which has some apples in their vertices. You spend 1 second to walk over one edge of the tree. Return the minimum time in seconds you have to spend in order to collect al

Learning from the mistakes 303

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【Leetcode】1443. Minimum Time to Collect All Apples in a Tree

显然每棵子树是独立的,比如对于第一棵子树,我们可以先递归求解这棵子树上从树根出发,要采集所有苹果所需要的步数,接着,当且仅当该子树上有苹果,我们才需要将该子树的步数 + 2(因为从树根走到该子树根再返回需要两步)累加到最终答案。号节点出发采集所有苹果,问最少要多少步。子树是一定存在苹果的,否则如果。,每个节点至多一个苹果。

数学、算法爱好者的博客 271

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Leetcode1443. Minimum Time to Collect All Apples in a Tree+dfs

【代码】Leetcode1443. Minimum Time to Collect All Apples in a Tree+dfs。

小堃哥的专栏 109

leetcode 1443. Minimum Time to Collect All Apples in a Tree 收集树上所有苹果的最少时间

Problem:使用了邻接表,深度优先搜索,求出从0到一个apple路径上所有的边的集合,最后边的个数*2就是答案。

邹九的个人博客 73

leetcode 1443.Minimum Time to Collect All Apples in a Tree(收集苹果所需最短时间)

leetcode 1443

蓝羽飞鸟的博客 716

LeetCode 1443 - 收集树上所有苹果的最少时间(周赛)

题目描述 1443. 收集树上所有苹果的最少时间 解法:(C++) 这道题有些机贼,如果你看到树,想到了递归、遍历之类的,那就拜拜了 (# ̄~ ̄#) 对于有苹果的节点,我们一定会走过它的父节点,而且每访问一个带苹果的节点就要+2+2+2s,一来一回 那这样子的话,其实不用递归、遍历什么的了,直接找到带苹果的节点标记其所有父节点为带苹果节点,最后有几个带苹果节点就加几个两秒 class Solution { public: int minTime(int n, vector<vector<

Aries_young的博客 525

Leetcode 1443. 收集树上所有苹果的最少时间 题解

题目链接:https://leetcode-cn.com/problems/minimum-time-to-collect-all-apples-in-a-tree/ 这周周赛的一道题,但是当时没弄出来。做深搜tag正好碰上了就刚一刚 开始设计的dfs是 int 型,返回步数,但是不知道为啥TLE: class Solution { public: bool vis[100005]; int dfs(int pos, vector<vector<int>> e

BNDSllx的博客 468

Minimum Time to Collect All Apples in a Tree

Given an undirected tree consisting ofnvertices numbered from 0 ton-1, which has some apples in theirvertices. You spend 1 second to walk over oneedge of the tree.Return the minimum time in secondsyou have to spendin order to collect all apples in ...

leetcode 解题思路 312

1443. Minimum Time to Collect All Apples in a Tree

Given an undirected tree consisting ofnvertices numbered from 0 ton-1, which has some apples in theirvertices. You spend 1 second to walk over oneedge of the tree.Return the minimum time in secondsyou have to spendin order to collect all apples in ...

Do not mess it up 520

leetcode 两数之和、三数之和、最接近的三数之和、四数之和

题目链接:四数之和 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。 示例: 给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。 ...

指点 4796

LeetCode112 PathSum Java题解

题目: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example: Given the below binary tree

u012249528的专栏 1081

【CF#468 div2 D. 】Peculiar apple-tree(思维)

题干: In Arcady's garden there grows a peculiar apple-tree that fruits one time per year. Its peculiarity can be explained in following way: there areninflorescences, numbered from1ton. Infloresce...

xuanweiace的博客 518
上一篇: 【leetcode】1399. Count Largest Group
下一篇: 【leetcode】387. First Unique Character in a String
AXIMI
博客等级 码龄10年 53粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值