代码随想录算法训练营第十五天| 110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和
110.平衡二叉树

题目链接:110.平衡二叉树
文档讲讲:代码随想录
状态:还可以
思路:计算左右子树的深度差,递归判断左右子树是否符合平衡条件
题解:
public boolean isBalanced(TreeNode root) {if (root == null) {return true;}int leftLen = getMaxLen(root.left);int rightLen = getMaxLen(root.right);return Math.abs(leftLen - rightLen) <= 1 && isBalanced(root.left) && isBalanced(root.right);}public int getMaxLen(TreeNode node) {if (node == null) {return 0;}int leftLen = getMaxLen(node.left);int rightLen = getMaxLen(node.right);return Math.max(leftLen, rightLen) + 1;}
257. 二叉树的所有路径

题目链接: 257. 二叉树的所有路径
文档讲解:代码随想录
状态:没写出来
思路:前序+回溯的思路,遇到叶子节点收集路径
递归解法:
public List<String> binaryTreePaths(TreeNode root) {List<String> res = new LinkedList<>();StringBuilder sb = new StringBuilder();getPath(root, res, sb);return res;}public void getPath(TreeNode root, List<String> res, StringBuilder sb) {if (root == null) {return;}int length = sb.length();sb.append(root.val);if (root.left == null && root.right == null) {res.add(sb.toString());} else {sb.append("->");getPath(root.left, res, sb);getPath(root.right, res, sb);}sb.setLength(length); // 恢复StringBuilder的状态}
迭代解法:
public List<String> binaryTreePaths(TreeNode root) {List<String> res = new LinkedList<>();if (root == null) {return res;}// 创建双端队列来存储节点和路径Deque<TreeNode> deque = new LinkedList<>();Deque<String> pathDeque = new LinkedList<>();// 初始节点和路径deque.addLast(root);pathDeque.addLast(Integer.toString(root.val));while (!deque.isEmpty()) {TreeNode node = deque.pollLast();String path = pathDeque.pollLast();// 如果当前节点是叶子节点,将路径添加到结果中if (node.left == null && node.right == null) {res.add(path);}// 如果右子节点不为空,添加到队列中并更新路径if (node.right != null) {deque.addLast(node.right);pathDeque.addLast(path + "->" + node.right.val);}// 如果左子节点不为空,添加到队列中并更新路径if (node.left != null) {deque.addLast(node.left);pathDeque.addLast(path + "->" + node.left.val);}}return res;}
404.左叶子之和

题目链接: 404.左叶子之和
文档讲解:代码随想录
状态:总觉得自己递归的思路对的,但是结果就是不对,原来是代码中笔误把root.left.right写成了root.right.right。。。。
递归题解:
public int sumOfLeftLeaves(TreeNode root) {// 如果根节点为空,返回0if (root == null) {return 0;}// 检查当前节点的左子节点是否为叶子节点if (root.left != null && root.left.left == null && root.left.right == null) {// 如果左子节点是叶子节点,返回左叶子节点的值,加上左子树和右子树的左叶子节点值return root.left.val + sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);} else {// 如果左子节点不是叶子节点,递归遍历左子树和右子树return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right);}}
迭代题解:
public int sumOfLeftLeaves(TreeNode root) {if (root == null) {return 0;}int sum = 0;Deque<TreeNode> deque = new LinkedList<>();deque.addLast(root);while (!deque.isEmpty()) {int size = deque.size();while (size-- > 0) {TreeNode node = deque.pollFirst();if (node.left != null) {if (node.left.left == null && node.left.right == null) {sum += node.left.val;}deque.addLast(node.left);}if (node.right != null) {deque.addLast(node.right);}}}return sum;}相关文章:
代码随想录算法训练营第十五天| 110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和
110.平衡二叉树 题目链接:110.平衡二叉树 文档讲讲:代码随想录 状态:还可以 思路:计算左右子树的深度差,递归判断左右子树是否符合平衡条件 题解: public boolean isBalanced(TreeNode root) {if (root n…...
MSP430单片机控制流水灯,Proteus仿真
作品功能 本项目利用MSP430单片机控制一个简单的流水灯,通过按键切换流水灯的模式。用户可以通过按键控制LED灯的方向,从左向右或从右向左依次点亮。 作品的硬件材料 MSP430单片机 具体型号:MSP430G2553 LED灯 数量:8个类型&…...
出售iPhone前的必做步骤:完全擦除个人数据的方法
当您准备在闲鱼上转售旧 iPhone、将其捐赠、送给朋友或通过 Apple 回收之前,您可能会选择执行“恢复”操作来擦除您的数据。但请注意,这一操作并不能真正删除设备中的数据。被“删除”或“格式化”的数据实际上仍存在于 iPhone 中,只是被系统…...
npm yarn 更换国内源以及node历史版本下载地址
npm 更换国内源 npm config set registryhttps://registry.npmmirror.com npm config set electron_mirrorhttps://registry.npmmirror.com/electron/yarn 更换国内源 yarn config set registry https://registry.npmmirror.comnode历史版本下载地址 https://nodejs.org/dow…...
微信小程序手机号码授权登录
文章目录 一、微信小程序开发二、使用步骤1.前端代码2.后台配置3.后台代码 总结 一、微信小程序开发 目前个人的小程序无法使用手机号码授权登录,可以使用测试号进行开发 二、使用步骤 1.前端代码 代码如下(示例): <butto…...
【网络编程开发】1.网络结构 2.IP地址与端口号 3.字节序
网络编程开发 两台计算机要互相传送文件需解决很多问题: 必须有一条传送数据的通路。发起方必须激活通路。要告诉网络如何识别接收方。发起方要清楚对方是否已开机,且与网络连接正常。发起方要清楚对方是否准备好接收和存储文件。若文件格式不兼容&…...
读取文件
自学python如何成为大佬(目录):自学python如何成为大佬(目录)_利用python语言智能手机的默认语言实战一-CSDN博客 在Python中打开文件后,除了可以向其写入或追加内容,还可以读取文件中的内容。读取文件内容主要分为以下几种情况: 1 读取指…...
Allure在jenkins中无法显示的问题
jenkins中使用allure生成报告需要注意工作环境和路径的配置 前提条件: jenkins容器中已安装jdk和allure jenkins中配置全局工具环境: 项目中配置allure路径: 路径来源: Path需要选择相对路径的allure-report、allure-results...
建筑建筑一建考试试题及答案,分享几个实用搜题和学习工具 #其他#职场发展
收录了大量考试类型的题库,大到考公,小到知识竞赛,题库资源算是比较丰富的了。操作起来也不难,我们只需输入题目内容,即可快速搜索出答案,而且它在给出答案的同时还会附带解析。最重要的是,搜题…...
[240607] Jina AI 发布多模态嵌入模型 | PHP 曝新漏洞 | TypeScript 5.5 RC 发布公告
目录 Jina AI 多模态嵌入模型 - jina-clip-v1PHP 漏洞 CVE-2024-4577TypeScript 5.5 RC 发布公告 Jina AI 多模态嵌入模型 - jina-clip-v1 jina-clip-v1 是 Jina AI 最新推出的多模态嵌入模型。与 OpenAI CLIP 相比,它大幅提升了纯文本检索方面的性能,同…...
LeetCode 算法:滑动窗口最大值c++
原题链接🔗:滑动窗口最大值 难度:困难⭐️⭐️⭐️ 题目 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动…...
荆州餐饮环保在行动:清洗油烟净化器,守护城市环境
我最近分析了餐饮市场的油烟净化器等产品报告,解决了餐饮业厨房油腻的难题,更加方便了在餐饮业和商业场所有需求的小伙伴们。 在荆州,餐饮业不仅是美食爱好者的天堂,更是城市生活的重要组成部分。然而,随着餐饮业的发…...
AIConnect赋能加持丨AI+DEPIN 共同推动AI发展的技术与运用峰会圆满落幕
6月6日,由AIConnect主办,JuCoin协办的「AIDePIN 共同推动AI发展的技术与应用」峰会在胡志明市圆满落幕!此次活动不仅是AIConnect生态在市场推广和技术应用方面的重要一步,也标志着JuCoin在推动AI与DePIN技术融合中的又一里程碑。 …...
【自定义View】Android圆饼进度条
源码 自定义属性 <?xml version"1.0" encoding"utf-8"?> <resources><declare-styleable name"ArcProgressView"><attr name"android:textSize" /><attr name"bgBorderWidth" format"d…...
AI重塑搜索和浏览器,360打造AIPC轻量化方案
6月6日,360AI新品发布会暨开发者沟通会在京举办,360集团发布全新360AI搜索、360AI浏览器,360集团创始人周鸿祎在现场使用360AI搜索为2024年高考语文作文押题。同时,“360AI甄选”平台及会员体系“360AI大会员”正式上线࿰…...
Meta Llama 3 RMSNorm(Root Mean Square Layer Normalization)
Meta Llama 3 RMSNorm(Root Mean Square Layer Normalization) flyfish 目录 Meta Llama 3 RMSNorm(Root Mean Square Layer Normalization)先看LayerNorm和BatchNorm举个例子计算 LayerNormRMSNorm 的整个计算过程实际代码实现结…...
MySQL-6、单表访问方法
前言 前面介绍了MySQL表空间相关的内容。包括区、段、碎片区,还有一些不同的页类型的作用。 (如果没有看前面五篇文章,不建议看此篇文章) 传送门: MySQL-1、InnoDB行格式 MySQL-2、InnoDB数据页 MySQL-3、索引 M…...
C语言实现三角波生成
C语言实现三角波生成 #include <stdio.h>#define SAMPLE_RATE 10000 // 采样率10kHz=10000Hz 对应100us=0.1ms #define UP_TIME 12.5 //上升时间12.5ms #...
WPF国际化的最佳实践
WPF国际化的最佳实践 1.创建项目资源文件 如果你的项目没有Properties文件夹和Resources.resx文件,可以通过右键项目-资源-常规-添加创建或打开程序集资源 2.添加国际化字符串 打开Resources.resx文件,添加需要翻译的文本字符,并将访问修…...
ctfshow web
【nl】难了 <?php show_source(__FILE__); error_reporting(0); if(strlen($_GET[1])<4){echo shell_exec($_GET[1]); } else{echo "hack!!!"; } ?> //by Firebasky //by Firebasky ?1>nl //先写个文件 ?1*>b //这样子会把所有文件名写在b里…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
