leetcode979. 在二叉树中分配硬币(dfs)

给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。

在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。

返回使每个结点上只有一枚硬币所需的移动次数。
输入:[3,0,0]
输出:2
解释:从树的根结点开始,我们将一枚硬币移到它的左子结点上,一枚硬币移到它的右子结点上。

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {int ans=0;public int distributeCoins(TreeNode root) {Coins(root);return ans;}public int Coins(TreeNode root) {if(root==null) return 0;int l=Coins(root.left);//左子树可能多出或者缺少的金币数,用正负号区分int r=Coins(root.right);//右子树可能多出或者缺少的金币数ans+= Math.abs(l)+ Math.abs(r);//如果子树缺少若干个金币,父节点就要移动若干个金币下去子树。
//如果子树多出若干个金币,就要移动若干个金币上去父节点。return root.val-1+l+r;//再将多出或者缺少的金币数目返回给父节点}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python怎么显示求余的除数_Python算术运算符及用法详解

算术运算符也即数学运算符,用来对数字进行数学运算,比如加减乘除。下表列出了 Python 支持所有基本算术运算符。表 1 Python 常用算术运算符运算符说明实例结果加12.45 1527.45-减4.56 - 0.264.3*乘5 * 3.618.0/除法(和数学中的规则一样)7 / 23.5//整除…

任务完成:我从CNC2018 GetAJob挑战中学到的东西

什么是CNC2018? (What is CNC2018?) CNC2018 stands for the CodeNewbie Challenge of 2018 put on by CodeNewbie. If you haven’t heard of CodeNewbie, it’s a community and podcast run by Saron Yitbarek. They also host live Twitter Chats on Sundays a…

HTML td 标签的 colspan 属性

表格单元横跨两列的表格&#xff1a; <table border"1"><tr><th>Month</th><th>Savings</th></tr><tr><td colspan"2">January</td></tr><tr><td colspan"2">Fe…

Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)

作者&#xff1a;Antonio Leiva 时间&#xff1a;Jan 5, 2017 原文链接&#xff1a;https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表达式允许更简单的方式建模式函数&#xff0c;所以它是Kotlin和任何其他现代开发语言的最强工具之一。 在Java6中&#xff0c;我们仅能下…

Pyhon进阶9---类的继承

类的继承 基本概念 定义 格式如下 继承中的访问控制 class Animal:__CNOUT 0HEIGHT 0def __init__(self,age,weight,height):self.__CNOUT self.__CNOUT 1self.age ageself.__weight weightself.HEIGHT heightdef eat(self):print({} eat.format(self.__class__.__name__…

python怎么备份列表_python实例:backup 备份

python实例&#xff1a;backup 备份本文来源于《python简明教程》中的实例1. 提出问题&#xff1a; 我想要一个可以为我的所有重要文件创建备份的程序。2. 分析明确问题&#xff1a;我们如何确定该备份哪些文件&#xff1f;备份保存在哪里&#xff1f;我们怎么样存储备份&#…

leetcode1466. 重新规划路线(dfs)

n 座城市&#xff0c;从 0 到 n-1 编号&#xff0c;其间共有 n-1 条路线。因此&#xff0c;要想在两座不同城市之间旅行只有唯一一条路线可供选择&#xff08;路线网形成一颗树&#xff09;。去年&#xff0c;交通运输部决定重新规划路线&#xff0c;以改变交通拥堵的状况。 路…

mysql数学函数名_Mysql数学函数

所有的数学函数在发生错误的情况下&#xff0c;均返回 NULL。-一元减。改变参数的符号&#xff1a;mysql> SELECT - 2;-> -2注意&#xff0c;如果这个操作符被用于一个 BIGINT&#xff0c;返回值也是一个 BIGINT&#xff01;这就意味着&#xff0c;应该避免在一个可能有值…

angular 渐进_如何创建具有Angular和无头CMS的渐进式Web应用程序

angular 渐进by Ondrej Chrastina通过Ondrej Chrastina 如何创建具有Angular和无头CMS的渐进式Web应用程序 (How to create a progressive web app featuring Angular and headless CMS) Have you ever wondered how a headless Content Management System fits in with Progr…

win10不用第三方工具激活的方法

步骤&#xff1a;1、本机上装个win7旗舰版&#xff0c;这个得拿第三方工具激活一下&#xff0c;当然你如果已经购买了正版更没问题了。第三方工具推荐那个啥啥loader&#xff0c;记住&#xff1a;chew_wga系列的暴力工具是不行的哦&#xff1b;2、把需要安装的win10官方安装镜像…

CentOS 7 搭建 LAMP

一、安装httpd 1、yum install httpd -y 2、启动服务&#xff1a;systemctl start httpd 3、设置开机启动&#xff1a;systemctl enable 二、安装mariadb 1、yum groupinstall mariadb 2、启动服务&#xff1a;systemctl start mariadb 3、设置开机启动&#xff1a;systemctl e…

quartz教程二

转载于:https://www.cnblogs.com/mumian2/p/10729901.html

python hookapi_pytest文档70-Hook钩子函数完整API总结​

pytest_collectstart(collector: Collector) 收集器开始收集。pytest_make_collect_report(collector: Collector) 执行collector.collect()并返回一个CollectReport。pytest_itemcollected(item: Item) 我们刚刚收集了一个测试项目。pytest_collectreport(report: Coll…

出现字迹模糊迹象_改变迹象:如何使用动态编程解决竞争性编程问题

出现字迹模糊迹象by Sachin Malhotra由Sachin Malhotra 改变迹象&#xff1a;如何使用动态编程解决竞争性编程问题 (Change the signs: how to use dynamic programming to solve a competitive programming question) If you’re a competitive programmer like I am, one of…

leetcode695. 岛屿的最大面积(dfs)

给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&#xff09;包围着。找到给定的二维数组中最大…

python把图片转为字符画_Python 实现图片转换为字符画

主要使用 pillow如果没有安装 使用 pillow install pillow 安装一下看代码&#xff1a;from PIL import Imageimport argparse#字符画所用的字符集ascii_char list("$B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_~<>i!lI;:,\"^. ")def get…

冒泡的三种写法

学而时习之&#xff0c;不亦说乎&#xff01; --《论语》 package com.zby.bubble;import java.util.Arrays; /*** * <class description>简单初级冒泡算法java实现* author zby**/ public class PrimaryBubble {public static void main(String[] args) {int[] arr { 1…

76. Minimum Window Substring

最后更新 一刷 08-Jan-2017 昨天Amazon group面结束&#xff0c;刚回家。 国内以前喜欢的女生结婚了&#xff0c;嘿嘿...好开心呀~~ 这次面试感觉自己的做法完爆别人&#xff0c;比什么2 greedy好多了 总之表现比想象的好&#xff0c;最后一面的面试官真是聪明得一逼&#xff…

day 02 python 基础

1.day1作业讲解 题目答案见day1 2.格式化输出 %占位符&#xff0c;s:字符串&#xff0c;d&#xff1a;数字 %%只是单纯的显示%&#xff08;显示的%是后面的&#xff09; 1 #格式化输出2 # % s d3 # name input(请输入姓名)4 # age input(请输入年龄)5 # height input(请输入…

python多维数据划分_【python+机器学习(4)】多维数据的特征选取(RidgeLasso)...

欢迎关注哈希大数据微信公众号【哈希大数据】在之前我们介绍了直接使用线性回归进行波士顿房价的预测&#xff0c;但是预测准确率仅有60%左右。预测准确率不高一方面是我们未对数据进行一定的预处理(包括归一化和标准化等)&#xff0c;这样不能确保在使用优化方式时&#xff0c…