Hot100——二叉树
树的定义:
public static class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(){};TreeNode(int val){ this.val = val; };TreeNode(int val, TreeNode left, TreeNode right){this.val = val;this.left = left;this.right = right;}}
深度优先遍历(DFS)(使用递归,底层是栈):
class Solution {public List<Integer> inorderTraversal(TreeNode root) {//中序遍历LinkedList result = new LinkedList<Integer>();inorder(root, result);return result;}//前序遍历public void preorder(TreeNode root, List<Integer> result){if(root == null){ return;}//中左右result.add(root.val);preorder(root.left, result);preorder(root.right, result);}//中序遍历public void inorder(TreeNode root, List<Integer> result){if(root == null){ return;}//左中右inorder(root.left, result);result.add(root.val);inorder(root.right, result);}//后序遍历public void postorder(TreeNode root, List<Integer> result){if(root == null){ return;}//左右中postorder(root.left, result);postorder(root.right, result);result.add(root.val);}
}
广度优先遍历(BFS)(底层是队列,可以解决最大深度等问题):
/*底层是队列,记录每一层的元素个数,把每一层的值都加入队列先add node再加入左右子树。循环条件为队列非空。*/public List<List<Integer>> BFS_Impl(TreeNode node){//以queue的方式遍历,先入先出,值存储在List中Queue<TreeNode> queue = new LinkedList<TreeNode>();//遍历结果存储在list中List<List<Integer>> res = new LinkedList<List<Integer>>();if (node == null){return res;}queue.add(node);while (!queue.isEmpty()){int size = queue.size();List<Integer> List = new ArrayList<>();for (int i=0; i < size; i++){TreeNode current = queue.poll();//每次从队列中取出一个节点List.add(current.val);// 添加当前节点的值到当前层级列表if (current.left != null){queue.add(current.left);//左子节点入队}if (current.right != null){queue.add(current.right);//右子节点入队}}res.add(List);}return res;}
104. 二叉树的最大深度 - 力扣(LeetCode)
class Solution {public int maxDepth(TreeNode root) {if (root == null){return 0;}//按照层序遍历的方式遍历二叉树,返回List的长度即为深度Queue<TreeNode> queue = new LinkedList<>();List<List<Integer>> result = new LinkedList<>();queue.add(root);while (! queue.isEmpty()){List<Integer> List = new LinkedList();int size = queue.size();for (int i=0; i<size; i++){TreeNode node = queue.poll();List.add(node.val);if(node.left != null){queue.add(node.left);}if(node.right != null){queue.add(node.right);}} result.add(List);}int max = result.size();return max;}
}
相关文章:
Hot100——二叉树
树的定义: public static class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(){};TreeNode(int val){ this.val val; };TreeNode(int val, TreeNode left, TreeNode right){this.val val;this.left left;this.right right;}} 深度优先遍历&#x…...
C++ static_cast、dynamic_cast、const_cast 和 reinterpret_cast 用处和区别
在 C 中,static_cast、dynamic_cast、const_cast 和 reinterpret_cast 是四种类型转换运算符,它们各自有不同的用途和行为: static_cast 用于编译时已知类型的转换,如基本数据类型转换、派生类到基类的转换、指针和引用的转换等…...
三十七、openlayers官网示例Earthquakes Heatmap解析——在地图上加载热力图
官网demo地址: Earthquakes Heatmap 这篇主要介绍了热力图HeatmapLayer HeatmapLayer 是一个用于在地图上显示热力图的图层类型,通常用于表示地理数据中的密度或强度。例如,它可以用来显示地震、人口密度或其他空间数据的热点区域。在这个示…...
curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL
source ~/.bash_profile flutter clean Command exited with code 128: git fetch --tags Standard error: 错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8) 错误:预期仍然需要 2737 个字节的正文 fetch-pack: unexpec…...
Spring Security 注册过滤器关键点与最佳实践
在 Spring Security 框架中,注册过滤器是实现身份验证和授权的关键组件。正确配置和使用注册过滤器对于确保应用程序的安全性至关重要。以下是一些关于 Spring Security 注册过滤器的注意事项和最佳实践。 过滤器链顺序: 注册过滤器通常位于过滤器链的末…...
力扣2024.考试的最大困扰度
力扣2024.考试的最大困扰度 注意同时>k才处理 class Solution {public:int maxConsecutiveAnswers(string answerKey, int k) {int n answerKey.size(),res0;unordered_map<int,int> cnt;for(int i0,j0;i<n;i){cnt[answerKey[i] - a] ;while(cnt[T - a] > k …...
java配置文件解析yml/xml/properties文件
XML 以mybatis.xml:获取所有Environment中的数据库并连接session为例 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException;import javax.xml.parsers.DocumentBuilder; impo…...
grpc接口调用
grpc接口调用 准备依赖包clientserver 参考博客: Grpc项目集成到java方式调用实践 gRpc入门和springboot整合 java 中使用grpc java调用grpc服务 准备 因为需要生成代码,所以必备插件 安装后重启 依赖包 <?xml version"1.0" encoding&…...
通信技术振幅键控(ASK)调制与解调硬件实验
一、实验目的 1. 掌握用键控法产生ASK信号的方法; 2. 掌握ASK非相干解调的原理。 二、实验内容 1. 观察ASK已调信号的波形; 2. 观察ASK解调信号的波形。 三、实验器材 1. 双踪示波器; 2. 通信原理实验箱信号源模块、③、④、⑦号模块。…...
自动化办公02 用openpyxl库操作excel.xlsx文件(新版本)
目录 一、文件读操作 二、文件写操作 三、修改单元格样式 openpyxl 是一个处理Excel表格的第三方库。openpyxl 库可以处理Excel2010以后的电子表格格式,包括:xlsx/xlsm/xltx/xltm。 openpyxl教程 一、文件读操作 工作簿(workbook): excel文件 工作表…...
用户反馈解决方案 —— 兔小巢构建反馈功能
目录 01: 前言 02: 用户反馈整体实现方案分析 03: 兔小巢全解析 04: 基于兔小巢实现用户反馈 05: 总结 01: 前言 在前台系统中,用户反馈 功能也是一个非常常见的需求。 通过反馈功能,我们可以知道当前的应用存在的一些不足和用户相应的一些诉求。…...
git 下载失败
-- 错误0 加 sudo git config --global http.postBuffer 524288000 -- 错误 $ git clone https://github.com/espressif/arduino-esp32.git -b release/v2.x arduino Cloning into arduino... remote: Enumerating objects: 53886, done. remote: Counting objects: 100% (1…...
力扣1438.绝对差不超过限制的最长连续子数组
力扣1438.绝对差不超过限制的最长连续子数组 难点:保存数组缩小后的最大最小值 用两个单调队列分别处理最大值和最小值 class Solution {public:int longestSubarray(vector<int>& nums, int limit) {deque<int> quemax,quemin;int n nums.size…...
如何避免Python中默认参数带来的陷阱
Python编程中,我们有时会给函数或方法提供默认参数。然而,这种做法在某些情况下可能会导致意想不到的行为,尤其是当默认参数是可变对象(例如列表、字典或类实例对象)时。本文将通过几个具体的例子来解释这个问题&#…...
代码随想录算法训练营第五十天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III
代码随想录算法训练营第五十天 198.打家劫舍 题目链接:198.打家劫舍 确定dp数组以及下标的含义:dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。确定递推公式:max(dp[i - 1],…...
VB.net 进行CAD二次开发(二)
利用参考文献2,添加面板 执行treeControl New UCTreeView()时报一个错误: 用户代码未处理 System.ArgumentException HResult-2147024809 Message控件不支持透明的背景色。 SourceSystem.Windows.Forms StackTrace: 在 System.Windows…...
安徽某高校数据挖掘作业6
1 根据附件中year文件,编辑Python程序绘制年销售总额分布条形图和年净利润分布条形图,附Python程序和图像。 2 根据附件中quarter和quarter_b文件,编辑Python程序绘制2018—2020年销售额和净利润折线图,附Python程序和图像。 3 …...
CMakeLists.txt和Package.xml
CMakeLists.txt和Package.xml CMakeLists.txt 总览 CMakeLists.txt 是用于定义如何构建 ROS (Robot Operating System) 包的 CMake 脚本文件。CMake 是一个跨平台的构建系统,用于自动化编译过程。在 ROS 中,CMakeLists.txt 文件指定了如何编译代码和链…...
Debian常用命令详解
Debian常用命令详解 Debian是一个流行的Linux发行版,它以其稳定性、强大的包管理系统和丰富的软件仓库而著称。对于Debian用户来说,掌握一些常用的命令行工具和命令是日常系统管理和维护的基础。下面,我们将介绍一些Debian系统中常用的命令。…...
代码随想录算法训练营day29|491.递增子序列、46.全排列、47.全排列II
递增子序列 491. 非递减子序列 - 力扣(LeetCode) 非递减子序列,则答案的子集中,需保持下一个元素大于等于前一个元素的顺序,由于题目中指出,所有的子序列长度需大于等于2,考虑当条件为path.siz…...
VMware16虚拟机扩容实战:Ubuntu22.04磁盘空间不足的终极解决方案
VMware16虚拟机扩容实战:Ubuntu22.04磁盘空间不足的终极解决方案 当你全神贯注地在Ubuntu22.04虚拟环境中开发项目时,突然弹出的"磁盘空间不足"警告足以让任何开发者心头一紧。特别是在使用VMware16这类虚拟化平台时,初始分配的磁盘…...
个人财务助手:OpenClaw+千问3.5-35B-A3B-FP8自动解析银行卡账单
个人财务助手:OpenClaw千问3.5-35B-A3B-FP8自动解析银行卡账单 1. 为什么需要本地化财务助手? 每次收到银行发来的PDF账单,我都会陷入手动整理数据的痛苦循环:复制交易记录到Excel、手动分类支出类型、用公式计算各类占比……这…...
seo关键词排名如何提升_seo关键词堆砌会不会被搜索引擎惩罚
SEO关键词排名如何提升_SEO关键词堆砌会不会被搜索引擎惩罚 在当前竞争激烈的网络环境中,提升SEO关键词排名已经成为网站运营者必须面对的重要课题。在追求高排名的过程中,如何避免关键词堆砌这一问题,成为了许多人关心的问题。本文将从问题…...
OpenClaw会议纪要助手:Qwen3-14b_int4_awq自动生成会议摘要
OpenClaw会议纪要助手:Qwen3-14b_int4_awq自动生成会议摘要 1. 为什么需要自动化会议纪要 每次开完会最头疼的就是整理会议纪要。作为技术负责人,我每周要参加至少5场会议,从需求评审到技术方案讨论,经常一场会下来精疲力尽&…...
参数党VS体验派?雅马哈、卡西欧、费森4款热门电钢琴型号终极对决,结果有点意外!
你是否也有这样的时刻?练习时间在不断累积,指法日渐熟练,可弹奏出的声音却依然显得机械、平淡,甚至有点“假”。那种在琴行试弹顶级三角钢琴时,指尖与琴键、琴弦与空气共鸣所带来的微妙震颤与心灵悸动,在自…...
实时手机检测-通用入门必看:上传图片→自动标注→坐标导出全流程
实时手机检测-通用入门必看:上传图片→自动标注→坐标导出全流程 1. 引言:让AI帮你“看见”手机 你有没有遇到过这样的场景?需要从一堆照片里快速找出所有包含手机的画面,或者想自动统计一张大合影里有多少人拿着手机࿱…...
YOLOv5推理时图片尺寸为啥变了?详解detect.py中letterbox函数的padding策略
YOLOv5推理时图像尺寸变化的底层机制解析:从letterbox函数到工程实践 当你第一次将19201080的高清视频帧送入YOLOv5模型时,控制台输出的640384尺寸可能让你眉头一皱——按照常规的宽高比缩放,640360才是预期结果。这个看似微小的差异背后&…...
Arduino MKR IoT Carrier 库底层控制与工程实践指南
1. Arduino MKR IoT Carrier 库深度解析:面向嵌入式工程师的底层控制指南 Arduino MKR IoT Carrier 是专为 MKR 系列开发板(如 MKR WiFi 1010、MKR NB 1500、MKR GSM 1400 等)设计的硬件抽象层库,其核心目标并非提供通用传感器驱…...
AI设计抗体,成功率低怎么办?从David Baker新论文看RFdiffusion的三大局限与未来优化方向
AI抗体设计的三大技术瓶颈与突破路径:从RFdiffusion的实践启示 抗体药物市场正以惊人的速度扩张,预计2025年将达到4450亿美元规模。在这个充满机遇的领域,AI技术正在改写传统抗体开发的游戏规则。David Baker团队最新发表在bioRxiv的研究成果…...
2025届毕业生推荐的十大降AI率神器实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下的学术写作情形里,论文AI网站主要是提供文献检索、提纲生成、段落润色以及…...
