刷题笔记24——完全二叉树的节点个数
有些事情是不能告诉别人的,有些事情是不必告诉别人的,有些事情是根本没有办法告诉别人的,而且有些事情是,即使告诉了别人,你也会马上后悔的。——罗曼罗兰
222. 完全二叉树的节点个数
- java的幂运算要 (int) Math.pow(2,l+1)-1
- 计算满二叉树的节点数量公式:2 ^ height -1
- 一棵完全二叉树的两棵子树,至少有一棵是满二叉树
- 计算时间复杂度时,本题比较巧妙的就是,因为完全二叉树的子树也是完全二叉树,所以每次分叉只需要走其中一支即可,即O(logN),而每次算深度即while循环这里需要O(logN),因此时间复杂度为 O(logN*logN)
class Solution {public int countNodes(TreeNode root) {if(root==null) return 0;int l = 0;int r = 0;TreeNode lt = root;while(lt.left!=null){lt = lt.left;l++;}TreeNode rt = root;while(rt.right!=null){rt = rt.right;r++;}if(l==r) return (int)Math.pow(2,l+1)-1;return 1 + countNodes(root.left) + countNodes(root.right);}
}
下一章开始刷图算法
相关文章:

刷题笔记24——完全二叉树的节点个数
有些事情是不能告诉别人的,有些事情是不必告诉别人的,有些事情是根本没有办法告诉别人的,而且有些事情是,即使告诉了别人,你也会马上后悔的。——罗曼罗兰 222. 完全二叉树的节点个数 java的幂运算要 (int) Math.pow(2,l1)-1计算满二叉树的节点数量公式:2 ^ height…...

sentinel环境搭建以及微服务接入
• sentinel部署 • sentinel-镜像制造 • sentinel-镜像推送 • sentinel-部署配置文件 • 访问控制台 • 外网访问控制台 • 集群内访问 • 配置规则 • 限流效果 • 微服务接入 • pom文件引入依赖 • pod部署文件添加配置 Sentinel 控制台是流量控制、熔断降级规则统一配置…...
Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks
标题:Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks 作者:Pan Zhang,Chengyu Song,Heng Yin,Deqing Zou,Elaine Shi and Hai Jin 发布:ASPLOS【计算机体系结构顶会】 时间:2020 摘要 Intel Soft…...

阿里云无影云电脑角色AliyunServiceRoleForGws什么意思?
阿里云无影云电脑服务关联角色是指角色名称:AliyunServiceRoleForGws,并赋予角色权限策略:AliyunServiceRolePolicyForGws的过程,简单来说,就是允许无影云电脑服务访问您VPC、CEN和NAS中的资源,使用该权限查…...

操作系统--------调度算法篇
目录 一.先来先服务调度算法(FCFS) 二.短作业优先调度算法(SJF) 2.1.SJF调度算法缺点 三.优先级调度算法 3.1优先级调度算法的类型 1.非抢占优先级调度算法 2.抢占优先级调度算法 3.2优先级的类型 3.1静态优先级 3.2动态…...
宝塔composer 安装laravel依赖出现的问题
环境宝塔、PHP版本8.0.2、laravel9 问题1:PHP Fatal error: Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() 办法:把PHP版本disable_functions这个中的putenv去掉,这个意思就是putenv被PHP对应的版本禁用了&…...
OpenCV自学笔记二十四:支持向量机
在OpenCV中,支持向量机(Support Vector Machine,简称SVM)算法的实现包含在ml模块中。SVM是一种常用的监督学习算法,主要用于分类问题。 SVM的原理:通过在特征空间中找到一个最优超平面,将不同类…...

网络初识
一 IP 地址 概念: IP 地址主要用于表示网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址 格式 IP 地址是一个32为的二进制数,通常被分割为4个“8位二进制数“(也就是4个字节&…...
极坐标和直角坐标的雅克比矩阵推导
我们经常需要在一些问题中研究坐标系的关系,这里讲讲最常见的极坐标和直角坐标的雅克比矩阵的推导。以二维坐标为例,三维坐标也是同理。 1. 直角坐标和极坐标 直角坐标表示为 ( x , y ) (x,y) (x,y),极坐标表示为 ( ρ , φ ) (\rho,\varph…...
经管博士科研基础【25】概率论中的相关基础概念
1. Support 在概率论中,"support"(支撑集)是指随机变量可能取值的集合。对于离散型随机变量,支撑集包含了所有可能的取值;而对于连续型随机变量,支撑集是指其密度函数或概率质量函数非零的区域。…...
计算机网络的相关知识点总结(一)
1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 不管是OSI七层模型亦或是TCP/IP四层模型,它们的提出都有一个共同的目的:通过分层来将复杂问题细化,通过各个层级之间的相互配合来更好的解决计算机中出现的问题。 说到分层…...

下载github.com上的依赖资源
下载github.com上的依赖资源(需要反复试才能成功,所以单独安装) export GIT_TRACE1 export GIT_CURL_VERBOSE1 pip install githttps://github.com/PanQiWei/AutoGPTQ.git -i https://pypi.mirrors.ustc.edu.cn/simple --trusted-hostpypi.mi…...
编写 GPT 提示词的公式 + 资源分享
GPT 能够给我们带来很大的帮助,因此我们要好好利用它。我们希望 GPT 输出令我们满意的内容,影响 GPT 输出内容的因素有模型和输入(Prompt,提示词)。 模型:我们可以选择不同的 GPT 产品,它们的模…...

用HTML、CSS和JavaScript制作的通用进制转换器
随着编程和计算机科学越来越受欢迎,我们经常需要进行进制转换。本文将介绍一个简洁、美观、适用于移动设备的进制转换工具,并详细讨论其实现。 目录 🌍 用HTML、CSS和JavaScript制作的通用进制转换器 1.项目图片展示 2. 技术栈 3. 主要功…...

ArcGIS 10.3软件安装包下载及安装教程!
【软件名称】:ArcGIS 10.3 【安装环境】:Windows 【下载链接 】: 链接:https://pan.baidu.com/s/1K5ab7IHMYa23HpmuPkFa1A 提取码:oxbb 复制这段内容后打开百度网盘手机App,操作更方便哦 软件解压码点击原文…...

【数据增强】
【数据增强】 1 数据增强的情形2 数据增强的方法 1 数据增强的情形 当数据比较小,难以获取新的训练数据时,可以考虑数据增强,如随机裁剪部分,随机左右上下翻转、随机旋转一个角度、随机亮度变化等微小变化,数据的多样…...

Ae 效果:CC Force Motion Blur
时间/CC Force Motion Blur Time/CC Force Motion Blur CC Force Motion Blur (CC 强制运动模糊)主要用于为动态图像添加强制的运动模糊效果,增加动态画面的流畅感和真实感。 相对于时间轴面板上的“运动模糊”开关,CC Force Moti…...

2023华为杯研究生数学建模竞赛CDEF题思路+模型代码
全程更新华为杯研赛CDEF题思路模型及代码,大家查看文末名片获取 华为杯C题思路分析 问题一 在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作…...
FP独立站之黑科技:AB站收款、斗篷CLOAK
最近一段时间经常有不少小伙伴来咨询我独立站的相关的业务,因为很多独立站卖家觉得独立站不好做,再加上跨境平台禁止特货类产品的销售(如FP产品、成人用品、电子烟、灰黑类产品等等),但这类产品市场需求大,…...

【Linux网络编程】gdb调试技巧
这篇博客主要要记录一下自己在Linux操作系统Ubuntu下使用gbd调试程序的一些指令,以及使用过程中的一些心得。 使用方法 可以使用如下代码 gcc -g test.c -o test 或者 gcc test.c -o test -g的选项最好添加,如果不添加,l指令无法被识别 …...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...