LeetCode 979. 在二叉树中分配硬币(DFS)

文章目录

    • 1. 题目
    • 2. DFS 解题

1. 题目

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

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

返回使每个结点上只有一枚硬币所需的移动次数。

在这里插入图片描述

输入:[3,0,0]
输出:2
解释:从树的根结点开始,我们将一枚硬币移到它的左子结点上,一枚硬币移到它的右子结点上。

在这里插入图片描述

输入:[0,3,0]
输出:3
解释:从根结点的左子结点开始,我们将两枚硬币移到根结点上 [移动两次]。然后,我们把一枚硬币从根结点移到右子结点上。

在这里插入图片描述

输入:[1,0,2]
输出:2

在这里插入图片描述

输入:[1,0,0,null,3]
输出:4提示:
1<= N <= 100
0 <= node.val <= N

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/distribute-coins-in-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. DFS 解题

  • 对于一个叶子节点,需要移动的次数是abs(val-1)
  • 对于一个节点的子树而言,需要的金币移动次数等于abs(Σ(val_i-1))

在这里插入图片描述

class Solution {int move = 0;
public:int distributeCoins(TreeNode* root) {dfs(root);return move;}int dfs(TreeNode* root){if(root == NULL)return 0;int l = dfs(root->left);int r = dfs(root->right);move += abs(l)+abs(r);return l+r+root->val-1;}
};

在这里插入图片描述

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

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

相关文章

有福利! 好书推荐:从《实用推荐系统》学习寻找用户行为之法

大多数关于推荐系统的图书都讲述了算法及其优化方法。这些书都认为你已经有了一个大的数据集来供算法使用。数据集不会像变魔术那样凭空出现。要想收集到正确的用户偏好数据&#xff0c;就需要投入精力和进行思考。它会成就你的系统&#xff0c;或者搞砸你的系统。“垃圾进&…

灵活强大的构建系统Gradle

前言 构建&#xff0c;软件生命周期中重要的一环&#xff0c;在现代软件开发过程中&#xff0c;起着越来越重要的作用。过去在Java或类Java的世界里&#xff0c;Ant、Maven再熟悉不过了&#xff0c;Maven凭借其强大的依赖配置战胜Ant&#xff0c;基本上成为了Java构建的标准。而…

LeetCode 791. 自定义字符串排序(map)

1. 题目 字符串S和 T 只包含小写字符。在S中&#xff0c;所有字符只会出现一次。 S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说&#xff0c;如果S中x在y之前出现&#xff0c;那么返回的字符串中x也应出现在y之前。 返回任意一种符合条件的…

6万字解决算法面试中的深度学习基础问题

文 | 清卢雨源 | 对白的算法屋前言真的是千呼万唤始出来emmmm&#xff0c;去年春招结束写了篇面试的经验分享。在文中提到和小伙伴整理了算法岗面试时遇到的常见知识点及回答&#xff0c;本想着授人以渔&#xff0c;但没想到大家都看上了我家的 &#xff01;但因本人执行力不足…

OpenKG开源系列 | 海洋鱼类百科知识图谱(浙江大学)

OpenKG地址&#xff1a;http://openkg.cn/dataset/ocean开放许可协议&#xff1a;CC BY-SA 4.0贡献者&#xff1a;浙江大学&#xff08;徐雅静、邓鸿杰、唐坤、郑国轴&#xff09;1、背景海洋是生命的摇篮,是人类文明的重要发祥地,在人类社会发展的进程中起着举足轻重的作用。海…

Presto实现原理和美团的使用实践

Facebook的数据仓库存储在少量大型Hadoop/HDFS集群。Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。在以前&#xff0c;Facebook的科学家和分析师一直依靠Hive来做数据分析。但Hive使用MapReduce作为底层计算框架&#xff0c;是专为批处理设计的。但随着数据越来越…

图谱实战 | 徐美兰:深度应用驱动的医学知识图谱构建

转载公众号 | DataFunSummit分享嘉宾&#xff1a;徐美兰 浙江数字医疗卫生技术研究院 数字医学知识中心主任编辑整理&#xff1a;李杰 京东出品平台&#xff1a;DataFunTalk导读&#xff1a;数研院这些年在知识图谱建设上取得了丰硕成果&#xff0c;今天我们将图谱构建过程中的…

6 年大厂面试官,谈谈我对算法岗面试的一些看法

文 | 不敢透露姓名的 Severus 和小轶面试官坐在那撇着大嘴的&#xff0c;“咳&#xff0c;给你一机会&#xff0c;最短的时间内让我记住你。”这个我会&#xff0c;我抡圆了“啪&#xff01;”&#xff0c;扭头我就走。我刚到家&#xff0c;录取通知书就来了&#xff0c;请你务…

美团Android自动化之旅—生成渠道包

每当发新版本时&#xff0c;美团团购Android客户端会被分发到各个应用市场&#xff0c;比如豌豆荚&#xff0c;360手机助手等。为了统计这些市场的效果&#xff08;活跃数&#xff0c;下单数等&#xff09;&#xff0c;需要有一种方法来唯一标识它们。 团购客户端目前通过渠道号…

开源开放 | 细粒度可循证医学文档知识融合表示和推理(CCKS2021)

OpenKG地址&#xff1a;http://openkg.cn/dataset/mdo-dataset开放许可协议&#xff1a;GPL 3.0贡献者&#xff1a;武汉科技大学&#xff08;高峰、龚珊珊、顾进广、徐芳芳&#xff09;摘要本开放资源在医学文档知识的基础上&#xff0c;使用知识图谱相关技术&#xff0c;解决了…

图灵奖大佬 Lecun 发表对比学习新作,比 SimCLR 更好用!

文 | Rukawa_Y编 | 智商掉了一地&#xff0c;Sheryc_王苏比 SimCLR 更好用的 Self-Supervised Learning&#xff0c;一起来看看吧&#xff01;Self-Supervised Learning作为深度学习中的独孤九剑&#xff0c;当融汇贯通灵活应用之后&#xff0c;也能打败声名在外的武当太极剑。…

5whys分析法在美团工程师中的实践

前言 网站的质量和稳定性对于用户和公司来说至关重要&#xff0c;但是在网站的快速发展过程中&#xff0c;由于各种原因导致事故不可避免的发生&#xff0c;这些大大小小的事故对公司难免会造成一些负面的影响&#xff0c;为了避免同类事故的再次发生&#xff0c;美团的工程师们…

LeetCode 382. 链表随机节点(概率)

1. 题目 给定一个单链表&#xff0c;随机选择链表的一个节点&#xff0c;并返回相应的节点值。保证每个节点被选的概率一样。 进阶: 如果链表十分大且长度未知&#xff0c;如何解决这个问题&#xff1f;你能否使用常数级空间复杂度实现&#xff1f; 来源&#xff1a;力扣&am…

图谱实战 | 斯坦福黄柯鑫:图机器学习在生物图上的应用

转载公众号 | DataFunSummit分享嘉宾&#xff1a;黄柯鑫 斯坦福大学 博士生编辑整理&#xff1a;元玉蒲 西北大学出品平台&#xff1a;DataFunTalk导读&#xff1a;大家好&#xff0c;我叫黄柯鑫。我现在是斯坦福大学的计算机科学博士第一年级&#xff0c;研究方向是机器学习在…

排得更好VS估得更准VS搜的更全「推荐、广告、搜索」算法间到底有什么区别?...

文 | 王喆源 | 王喆的机器学习笔记作为互联网的核心应用“搜广推”&#xff0c;三个方向基本都是互联网公司的标配。各头部公司的搜广推系统也都各自发展成了集成了多种模型、算法、策略的庞然大物&#xff0c;想一口气讲清楚三者的区别并不容易。不过万事总有一个头绪&#xf…

Solr Facet技术的应用与研究

问题背景 在《搜索引擎关键字智能提示的一种实现》一文中介绍过&#xff0c;美团的CRM系统负责管理销售人员的门店(POI)和项目(DEAL)信息&#xff0c;提供统一的检索功能&#xff0c;其索引层采用的是SolrCloud。在用户搜索时&#xff0c;如果能直观地给出每个品类的POI数目&am…

LeetCode 129. 求根到叶子节点数字之和(DFS)

1. 题目 给定一个二叉树&#xff0c;它的每个结点都存放一个 0-9 的数字&#xff0c;每条从根到叶子节点的路径都代表一个数字。 例如&#xff0c;从根到叶子节点路径 1->2->3 代表数字 123。 计算从根到叶子节点生成的所有数字之和。 说明: 叶子节点是指没有子节点的…

推荐精排之锋:FM的一小步,泛化的一大步

文 | 水哥源 | 知乎1.如果说LR是复读机&#xff0c;那么FM可以算作是电子词典2.泛化就是我没见过你&#xff0c;我也能懂你&#xff0c;但是泛化有时候和个性化有点矛盾&#xff0c;属于此消彼长的关系3.实践中的泛化往往来源于拆解&#xff0c;没见过组成的产品&#xff0c;但…

图谱实战 | 阿里周晓欢:如何将实体抽取从生成问题变成匹配问题?

转载公众号 | DataFunSummit分享嘉宾&#xff1a;周晓欢 阿里巴巴 算法专家编辑整理&#xff1a;刘香妍 中南财经政法大学出品平台&#xff1a;DataFunSummit导读&#xff1a;实体抽取或者说命名实体识别 ( NER ) 在信息抽取中扮演着重要角色&#xff0c;常见的实体抽取多是对文…

剖析 Promise 之基础篇

随着浏览器端异步操作复杂程度的日益增加&#xff0c;以及以 Evented I/O 为核心思想的 NodeJS 的持续火爆&#xff0c;Promise、Async 等异步操作封装由于解决了异步编程上面临的诸多挑战&#xff0c;得到了越来越广泛的应用。本文旨在剖析 Promise 的内部机制&#xff0c;从实…