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.pswp.cn/news/394215.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394215.shtml
英文地址,請注明出處:http://en.pswp.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…