LeetCode 222. 完全二叉树的节点个数(二分查找)

1. 题目

给出一个完全二叉树,求出该树的节点个数。

说明:
完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。

示例:
输入: 1/ \2   3/ \  /
4  5 6输出: 6

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

2. 解题

  • 通用办法,遍历即可
class Solution {int count = 0;
public:int countNodes(TreeNode* root) {if(root == NULL)return 0;count++;countNodes(root->left);countNodes(root->right);return count;}
};

在这里插入图片描述

  • 计算包含当前节点在内的左屋檐和右屋檐高度
  • 相等的话,说明是完全二叉树,直接公式计算
  • 不相等的话,递归调用
class Solution {int h, hL, hR;
public:int countNodes(TreeNode* root) {if(root == NULL)return 0;hL = leftHeight(root);hR = rightHeight(root);if(hL == hR)return (1<<hL)-1;//或者 pow(2,hL)-1;else//hL > hRreturn 1+countNodes(root->left)+countNodes(root->right);}int leftHeight(TreeNode* root){for(h = 0 ; root; root=root->left)++h;return h;}int rightHeight(TreeNode* root){for(h = 0 ; root; root=root->right)++h;return h;}
};

在这里插入图片描述

  • 计算某节点的左子的左屋檐 ,右子的左屋檐
  • 左边 == 右边,说明左边是完全的,直接公式
  • 左边 > 右边,说明右边是完全的,直接公式
class Solution {int h, hL, hR;
public:int countNodes(TreeNode* root) {if(root == NULL)return 0;hL = Height(root->left);hR = Height(root->right);if(hL == hR)return (1<<hL)+countNodes(root->right);else//hL > hRreturn (1<<hR)+countNodes(root->left);}int Height(TreeNode* root){for(h = 0 ; root; root=root->left)++h;return h;}
};

在这里插入图片描述

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

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

相关文章

常见的统计分析方法汇总,指标对比分析、时间序列预测

常见的八种统计分析法如下&#xff1a; 指标对比分析法分组分析法时间数列及动态分析法指数分析法平衡分析法综合评价分析景气分析预测分析 1 比较分析法## 一、指标对比分析法指标对比分析法&#xff0c;又称比较分析法&#xff0c;是统计分析中最常用的方法。是通过有关的指…

这三个NLP项目写进简历,网申通过率提高50%

01三大企业级项目项目一京东智能对话系统项目项目简介&#xff1a;智能客服机器人已经成为了客服系统的重要组成部分&#xff0c;帮助人工客服提升工作效率&#xff0c;为企业降低人工成本。作为智能客服的行业先驱&#xff0c;京东多年来致力打造全链路的客服机器人&#xff0…

论文浅尝 | MulDE:面向低维知识图嵌入的多教师知识蒸馏

笔记整理&#xff1a;朱渝珊&#xff0c;浙江大学在读博士&#xff0c;研究方向为快速知识图谱的表示学习&#xff0c;多模态知识图谱。Motivation为了更高的精度&#xff0c;现有的KGE方法都会采用较高的embedding维度&#xff0c;但是高维KGE需要巨大的训练成本和存储空间。现…

LeetCode 453. 最小移动次数使数组元素相等(数学)

1. 题目 给定一个长度为 n 的非空整数数组&#xff0c;找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。 示例: 输入: [1,2,3]输出: 3 解释: 只需要3次移动&#xff08;注意每次移动会增加两个元素的值&#xff09;&#xff1a;[1,2,3] > [2…

性能优化模式

摘要 性能优化涉及面很广。一般而言&#xff0c;性能优化指降低响应时间和提高系统吞吐量两个方面&#xff0c;但在流量高峰时候&#xff0c;性能问题往往会表现为服务可用性下降&#xff0c;所以性能优化也可以包括提高服务可用性。在某些情况下&#xff0c;降低响应时间、提高…

征稿 | 国际KG大会 IJCKG 2021专辑征文

国际知识图谱联合会议&#xff08;International Joint Conference on Knowledge Graphs (IJCKG 2021, 与ACM/SIGAI联合办会&#xff09;今年将于12月6日-8日在线召开。Data Intelligence今年被EI数据库收录后&#xff0c;有幸成为大会推荐期刊&#xff0c;大会优秀论文将推荐在…

200字带你看完一本书,GPT-3已经会给长篇小说写摘要了

文 | 博雯源 | 量子位现在&#xff0c;AI能帮你200字看完一段12万词的长篇小说了&#xff01;比如这样一段121567词的《傲慢与偏见》原文&#xff1a;▲图源OpenAI官网AI分四个阶段来总结&#xff1a;先把原文总结成276个摘要&#xff08;24796词&#xff09;&#xff0c;然后进…

LeetCode 1252. 奇数值单元格的数目

1. 题目 给你一个 n 行 m 列的矩阵&#xff0c;最开始的时候&#xff0c;每个单元格中的值都是 0。 另有一个索引数组 indices&#xff0c;indices[i] [ri, ci] 中的 ri 和 ci 分别表示指定的行和列&#xff08;从 0 开始编号&#xff09;。 你需要将每对 [ri, ci] 指定的行…

Google Research新成果,让表格理解和检索更上一层楼!

文 | 舞风小兔编 | 智商掉了一地如何更好地理解自然语言查询问题与表格信息&#xff1f;Google Research给出了一个改进版Transformer&#xff0c;一起来看看吧&#xff01;表格以结构化方式存储信息&#xff0c;广泛地存在于web世界中。表格最为常见的一种用法就是人们查询其中…

论文浅尝 | 用于视觉推理的显式知识集成

论文笔记整理&#xff1a;刘克欣&#xff0c;天津大学硕士链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2021/papers/Zhang_Explicit_Knowledge_Incorporation_for_Visual_Reasoning_CVPR_2021_paper.pdf动机现有的可解释的和显式的视觉推理方法仅执行基于视觉证…

美团O2O排序解决方案——线下篇

背景 针对美团90%的交易发生在移动端的业务特点&#xff0c;我们实现了一套适用于O2O业务的搜索排序技术方案&#xff0c;已在许多产品和子行业中得到应用。在之前的线上篇中&#xff0c;我们已经介绍了服务的框架、排序算法等。本文为线下篇&#xff0c;主要讲述数据清洗、特征…

LeetCode 401. 二进制手表

1. 题目 二进制手表顶部有 4 个 LED 代表小时&#xff08;0-11&#xff09;&#xff0c;底部的 6 个 LED 代表分钟&#xff08;0-59&#xff09;。 每个 LED 代表一个 0 或 1&#xff0c;最低位在右侧。 例如&#xff0c;上面的二进制手表读取 “3:25”。 给定一个非负整数 …

EMNLP'21 | 让压缩语言模型自动搜索最优结构!

文 | Cheney编 | 智商掉了一地既让模型跑得快又好&#xff0c;又要空间占用少&#xff0c;真的有这样效果爆表的操作存在吗&#xff1f;在当前疫情反复的情况下&#xff0c;大家平时出门用健康宝刷脸的频率变得越来越高。如果每次人脸识别都需要等很久的话&#xff0c;那也太让…

直播分享丨前沿技术讲习班:知识图谱前沿技术与应用(CIPS ATT27)

本文转载自公众号&#xff1a;智源社区助手。作为大数据时代重要的知识表示方式&#xff0c;知识图谱是人工智能领域构建和应用知识的新阶段&#xff0c;它能够更好地实现大规模数据的认知与推理。同时&#xff0c;知识图谱和深度学习相互协作&#xff0c;是实现具有强鲁棒性、…

美团O2O排序解决方案——线上篇

美团的愿景是连接消费者和商家&#xff0c;而搜索在其中起着非常重要的作用。随着业务的发展&#xff0c;美团的商家和团购数正在飞速增长。这一背景下&#xff0c;搜索排序的重要性显得更加突出&#xff1a;排序的优化能帮助用户更便捷地找到满足其需求的商家和团购&#xff0…

手把手教你模型选择,模型评估

数据来源是&#xff1a;头条新闻数据&#xff0c;经过处理之后的部分数据如下&#xff1a; 首先通过交叉验证&#xff0c;取选择模型&#xff1a; from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier from sklearn.s…

LeetCode 1030. 距离顺序排列矩阵单元格(排序Lambda表达式BFS)

文章目录1. 题目2. 解题2.1 multimap2.2 Lambda 表达式排序2.3 BFS搜索1. 题目 给出 R 行 C 列的矩阵&#xff0c;其中的单元格的整数坐标为 (r, c)&#xff0c;满足 0 < r < R 且 0 < c < C。 另外&#xff0c;我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格…

干货 | 带你理解对比学习损失函数的性质以及温度系数的作用

文 | Feng源 | 对白的算法屋很多小伙伴都了解对比学习&#xff0c;但要说温度系数的作用可能就不太清楚了。卷友们好&#xff0c;我是对白。对比学习中的温度系数是一个神秘的参数&#xff0c;大部分论文都默认采用小的温度系数来进行自监督对比学习&#xff08;例如0.07&#…

论文浅尝 | Data Intelligence第4期正式上线啦

本文转载自公众号&#xff1a;数据智能英文刊各位关注DI期刊的专家学者和业界同仁&#xff1a;Data Intelligence第4期正式上线啦&#xff01;本期共出版2篇研究性论文&#xff0c;5篇数据论文&#xff0c;1篇实践类论文。点击每篇文章标题下方的二维码可直达论文全文页面。敬请…

细说ReactiveCocoa的冷信号与热信号(三):怎么处理冷信号与热信号

第一篇文章中我们介绍了冷信号与热信号的概念&#xff0c;前一篇文章我们也讨论了为什么要区分冷信号与热信号&#xff0c;下面我会先为大家揭晓热信号的本质&#xff0c;再给出冷信号转换成热信号的方法。 揭示热信号的本质 在ReactiveCocoa中&#xff0c;究竟什么才是热信号呢…