day17-二叉树part04
110.平衡二叉树 (优先掌握递归)后序遍历 左右中
class Solution {public boolean isBalanced(TreeNode root) {return getHeight(root) != -1;}//递归三部曲 确定方法的参数与返回值private int getHeight(TreeNode root){//明确终止条件if(root == null){return 0;}//确认单层递归逻辑 //后序遍历 左右中int leftHeight = getHeight(root.left);if(leftHeight == -1){return -1;}int rightHeight = getHeight(root.right);if(rightHeight == -1){return -1;}//比较左右子树高度差 如果大于一直接返回不是平衡二叉树if(Math.abs(leftHeight - rightHeight) > 1){return -1;}return Math.max(leftHeight,rightHeight) + 1;}
} 257. 二叉树的所有路径 (优先掌握递归) 前序遍历 根左右
class Solution {//根节点到叶子节点的所有路径 前序遍历先获取根节点public List<String> binaryTreePaths(TreeNode root) {List<String> res = new ArrayList<>(); //最终结果if(root == null){return res;}//结果中的路径 List<Integer> paths = new ArrayList<>();traversal(root,paths,res);return res;}private void traversal(TreeNode root,List<Integer> paths,List<String> res){paths.add(root.val);//终止条件if(root.left == null && root.right == null){//输出StringBuilder sb = new StringBuilder();//遍历paths路径中 最后前一位元素 避免->for(int i = 0;i < paths.size()-1;i++){sb.append(paths.get(i)).append("->");}sb.append(paths.get(paths.size() -1 )); //记录最后一个路径res.add(sb.toString()); //收集一条路径return;}//单层递归逻辑//左if(root.left != null){traversal(root.left,paths,res);//下一个节点完成 回溯paths.remove(paths.size() -1); }//右if(root.right != null){traversal(root.right,paths,res);paths.remove(paths.size() -1);}}
} 404.左叶子之和 (优先掌握递归)
左叶子定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点
class Solution {//后序遍历 左右中public int sumOfLeftLeaves(TreeNode root) {if(root == null){return 0;}if(root.left == null && root.right == null) return 0;int leftVaule = sumOfLeftLeaves(root.left); //左if(root.left != null && root.left.left == null && root.left.right == null){ // 左子树就是一个左叶子的情况leftVaule = root.left.val;}int rightValue = sumOfLeftLeaves(root.right); //右int sum =leftVaule + rightValue; //中return sum;}
} 相关文章:
day17-二叉树part04
110.平衡二叉树 (优先掌握递归)后序遍历 左右中 class Solution {public boolean isBalanced(TreeNode root) {return getHeight(root) ! -1;}//递归三部曲 确定方法的参数与返回值private int getHeight(TreeNode root){//明确终止条件if(root null){r…...
书生浦语第一次课
模型的发展 从专业模型到通用模型 书生浦语大模型全链路开源体系 2023.06.07 -> InternLM千亿参数语言大模型发布 2023.07.06 -> InternLM千亿参数语言大模型全面升级,支持8K语境、26种语言。全面开源、免费商用:InternLM-7B、全链条开源工具…...
UE小:UE5.3无法创建C++工程
当您在使用Unreal Engine (UE) 构建项目时,如果遇到以下问题: Running C:/Program Files/Epic Games/UE\_5.3/Engine/Build/BatchFiles/Build.bat -projectfiles -project"C:/UEProject/Shp\_1/Shp\_1.uproject" -game -rocket -progress Usi…...
FFmpeg获取视频详情
话不多说,直接上代码: pom依赖: <!--视频多媒体工具包 包含 FFmpeg、OpenCV--><dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.3</versi…...
find: paths must precede expression
find: paths must precede expression 1. find: paths must precede expression2. 请在搜索字符串上添加单引号或者双引号References 1. find: paths must precede expression strongforeverstrong:~/ForeverStrong$ find /home/strong/ForeverStrong/image_results/ -name *.…...
RabbitMQ3.x之九_Docker中安装RabbitMQ
RabbitMQ3.x之_Docker中安装RabbitMQ 文章目录 RabbitMQ3.x之_Docker中安装RabbitMQ1. 官网2. 安装1 .拉取镜像2. 运行容器 3. 访问 1. 官网 rabbitmq - Official Image | Docker Hub 2. 安装 1 .拉取镜像 docker pull rabbitmq:3.13.0-management2. 运行容器 # latest Rabb…...
vue快速入门(四)v-html
注释很详细,直接上代码 上一篇 新增内容 使用v-html将文本以html的方式显示 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …...
第19次修改了可删除可持久保存的前端html备忘录:换了一个特别的倒计时时钟
第19次修改了可删除可持久保存的前端html备忘录:换了一个特别的倒计时时钟 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><met…...
C++ 2024-4-1 作业
#include <iostream> using namespace std;class A { public:int a;A(int a):a(a){cout<<"A的有参构造"<<endl;} }; class B:virtual public A { public:int b;B(int a,int b):A(a),b(b){cout<<"B的有参构造"<<endl;} }; cl…...
【滑动窗口】Leetcode 串联所有单词的子串
题目解析 30. 串联所有单词的子串 本题的意思就是在目标串s中寻找能够找到的words字符串的全排列,返回起始位置 算法讲解 我们可以将这道题转化为寻找目标串的words字母的异位词,按照上一次讲解的【滑动窗口】Leetcode 找到字符串中所有字母异位词我们…...
golang channel实践代码及注意事项
在使用Go语言(Golang)的通道(Channel)时,有几个重要的注意点可以帮助开发者更安全、高效地使用它们进行并发编程。以下是一些关键的注意事项: 选择正确的通道类型:Go语言提供了两种类型的通道&…...
面试题:RabbitMQ 消息队列中间件
1. 确保消息不丢失 生产者确认机制 确保生产者的消息能到达队列,如果报错可以先记录到日志中,再去修复数据持久化功能 确保消息未消费前在队列中不会丢失,其中的交换机、队列、和消息都要做持久化消费者确认机制 由spring确认消息处理成功后…...
wpf中引用自定义字体
在WPF(Windows Presentation Foundation)中,FontFamily属性用于指定控件或文本元素使用的字体。它是一个非常基础且重要的属性,影响着用户界面的视觉呈现和可读性。以下是关于WPF中FontFamily属性的一些关键信息和使用方法&#x…...
高效准确!指甲剪盖片视觉检测技术解密
指甲剪的盖片是指指甲剪的一端,通常用来盖住另一端的刀刃部分。指甲剪盖片是指甲剪的重要部分,除了保护刀刃外,还起到美观和便捷的作用。正确使用和保养指甲剪盖片可以延长指甲剪的使用寿命。 本案是对指甲剪盖片最大尺寸长75mm*宽10mm*高3mm…...
分布式IO模块PLC扩展模拟量模块
BL200是一款结构紧凑、体积小的分布式IO耦合器,支持ModbusTCP协议,采用嵌入式硬件,主频380Mhz,基于LinuxOS,采用独特的MAC层数据交换技术的双网口技术实现级联,中间设备宕机不影响后面设备的数据传输,可支持高达32个AI、DI、DO、热电阻、热电偶、RS485等种类的IO板,广泛应用于工…...
Qt事件系统
第三章Qt事件系统 文章目录 第三章Qt事件系统1.事件系统事件是如何传递的事件类型事件处理发送事件 2.事件传播机制事件接受和忽略事件分发事件过滤 3.事件和信号的区别 1.事件系统 在Qt中,事件是派生抽象QEvent类的对象,它表示应用程序内发生的事情&am…...
C++STL--排序算法
sort 使用快速排序,平均性能好O(nlogn),但最差情况可能很差O(n^2)。不稳定。 sort(v.begin(),v.end());//对v容器进行排序,默认升序 sort(v.begin(),v.end(),greater<int>());//降序排序对于支持随机访问的迭代器的容器, 都可以利用sort算法直接对其进行排序…...
CEF的了解
(14 封私信 / 80 条消息) CEF和Electron的区别是什么? - 知乎 (zhihu.com) Electron面向的开发者:会用JavaScript,HTML,CSS,不会C CEF面向的开发者:会用JavaScript,HTML,CSS,会C (14 封私信 / 80 条消息) liulun - …...
基于OrangePi Zero2的智能家居项目(开发阶段)
智能家居项目的软件实现 紧接上文 基于OrangePi Zero2的智能家居项目(准备阶段)-CSDN博客 目录 一、项目整体设计 1.1项目整体设计 1.2具体划分 二、开发工作的前期准备 1、进行分类,并用Makefile文件进行管理 参考:自己创…...
数据结构记录
之前记录的数据结构笔记,不过图片显示不了了 数据结构与算法(C版) 1、绪论 1.1、数据结构的研究内容 一般应用步骤:分析问题,提取操作对象,分析操作对象之间的关系,建立数学模型。 1.2、基本概念和术语 数据&…...
(5月最新版)OpenClaw 小龙虾 Windows 一键安装与问题排查
OpenClaw(小龙虾)Windows 11 一键部署教程|2026 新版|零代码・免配置・解压即用 适用系统:Windows 11 专业版 / 家庭版 / 正式版(全版本兼容)当前版本:v2.7.1 下载地址:…...
【算法四十五】139. 单词拆分
139. 单词拆分 动态规划: class Solution {public boolean wordBreak(String s, List<String> wordDict) {//子问题:字符串的前 i 个字符能否用字典里的单词拼接//状态转移方程:dp[i] true if ∃ j ∈ [0, i) , dp[j] true && s[j..i-1] ∈ word…...
3步完成微信聊天记录永久备份:开源工具WeChatExporter终极指南
3步完成微信聊天记录永久备份:开源工具WeChatExporter终极指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter WeChatExporter是一款专为Mac用户设计的开源工…...
【Linux 指南】文件系统系列(二):核心抽象层 —— 块 、分区 、inode 从原理到实操
上一篇我们吃透了磁盘的底层原理,搞懂了磁盘通过 CHS/LBA 寻址定位扇区,也知道扇区是磁盘硬件的最小读写单位(512 字节)。但随之而来的两个核心问题摆在眼前:一是逐个扇区读写磁盘效率极低,磁头的寻道和旋转…...
模块化IC设计流程:应对复杂芯片挑战的解决方案
1. 现代IC设计面临的挑战与模块化流程的价值在当今半导体行业,芯片设计团队正面临前所未有的复杂挑战。随着工艺节点不断演进至5nm及以下,设计复杂度呈指数级增长。我曾参与的一个65nm SoC项目,团队最初采用传统线性设计流程,结果…...
上古卷轴5天际整合包下载最新全热门MOD整合(画质+人物+功能+场景全美化)下载分享
一、整合包基础概况 新手向懒人专属整合资源,适配电脑Windows系统。整合包集成多款热门优质MOD,无需玩家单独下载模组,整合包整体兼容性强,适配主流家用电脑,官方提前做好模组适配优化,规避多数模组冲突问…...
Tarjan算法:从DFS序到强连通分量的寻路指南(附C++实战与缩点技巧)
1. 从迷宫探索到强连通王国:Tarjan算法的生活隐喻 想象你正在探索一座巨大的迷宫,手里拿着粉笔和记事本。每走到一个新的岔路口,你就在墙上标记数字(第一个到的路口标1,第二个标2...),这就是DFS…...
AI建站+全链路运营,让你一个人活成一个团队
AI建站全链路运营,让你一个人活成一个团队去年这个时候,我为了搞独立站,头发掉了不少。那时候我觉得,只要网站做得漂亮,订单就会像雪花一样飞来。结果呢?网站是上线了,但支付接不通,…...
【ElevenLabs企业级语音AI落地指南】:20年音视频架构师亲授——3大合规陷阱、4类集成断点、1套可审计部署框架
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs Enterprise方案全景认知 ElevenLabs Enterprise 是面向中大型组织构建的语音合成与语音智能平台,提供高保真、低延迟、多语言、可定制的语音生成能力,并深度集成企业…...
从噪声中捕捉节拍:基于PLL的CDR电路如何重塑光通信数据流
1. 当光信号遇上噪声:CDR电路为何成为关键救星 想象一下你正在嘈杂的菜市场里试图听清朋友说话——周围此起彼伏的叫卖声就像光通信中的噪声,而朋友说话的节奏就是需要提取的时钟信号。这就是光接收机面临的真实困境:传输过来的NRZ信号往往带…...
