当前位置: 首页 > news >正文

每日5题Day22 - LeetCode 106 - 110

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前!

第一题:106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)

class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {Map<Integer, Integer> map = new HashMap<>();//把中序每个点都记录下来for(int i = 0; i < inorder.length; i++){map.put(inorder[i], i);}//传入后序的最后一个节点,因为是根节点TreeNode head = helper(0, inorder.length - 1, map, postorder, postorder.length - 1);return head;}private static TreeNode helper(int low, int high, Map<Integer, Integer> map, int[] postorder, int idx){if(low > high){return null;}//找到对应的值int val = postorder[idx];//在中序中找到分割点int index = map.get(val);TreeNode node = new TreeNode(val);//递归找到左右子树node.left = helper(low, index - 1, map, postorder, idx - (high - index) - 1);node.right = helper(index + 1, high, map, postorder, idx - 1);return node;}
}

第二题:107. 二叉树的层序遍历 II - 力扣(LeetCode)

class Solution {public List<List<Integer>> levelOrderBottom(TreeNode root) {//就是使用栈每次把每一层记录下来,最后逆序输出//本质上还是属于层序遍历List<List<Integer>> res = new ArrayList<>();if(root == null){return res;}Deque<TreeNode> stack = new ArrayDeque<>();stack.offer(root);while(!stack.isEmpty()){List<Integer> tmp = new ArrayList<>();int size = stack.size();for(int i = 0; i < size; i++){TreeNode cur_node = stack.poll();tmp.add(cur_node.val);if(cur_node.left != null){stack.offer(cur_node.left);}if(cur_node.right != null){stack.offer(cur_node.right);}}res.add(0,tmp);}return res;}
}

第三题:108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode)

class Solution {public TreeNode sortedArrayToBST(int[] nums) {//题目提到有序,二叉,高度要平衡,//相当于每次我们找到节点都是要中间节点//随后向两边扩散,所以创建二叉搜索树的时候一定要二叉return helper(nums, 0 , nums.length - 1);}private TreeNode helper(int[] nums, int left, int right){if(left > right){return null;}//找到中间节点int mid = left + (right - left) / 2;TreeNode node = new TreeNode(nums[mid]);//递归node.left = helper(nums, left, mid - 1);node.right = helper(nums, mid + 1, right);//注意是返回某个节点return node;}
}

第四题:109. 有序链表转换二叉搜索树 - 力扣(LeetCode)

class Solution {public TreeNode sortedListToBST(ListNode head) {if (head == null) {return null; // 基本情况}return convertToBST(head, null);}private TreeNode convertToBST(ListNode head, ListNode tail) {if (head == tail) {return null; // 基本情况:子列表为空}//使用快慢指针来实现二分中查找中位的过程ListNode slow = head;ListNode fast = head;while (fast != tail && fast.next != tail) {slow = slow.next;fast = fast.next.next;}TreeNode root = new TreeNode(slow.val);root.left = convertToBST(head, slow);root.right = convertToBST(slow.next, tail);return root;}
}

 第五题:110. 平衡二叉树 - 力扣(LeetCode)

class Solution {public boolean isBalanced(TreeNode root) {//对于每一个点进行递归判断return getH(root) != -1;}private static int getH(TreeNode node){//对于每一个特定的点,如果为空则高度为0if(node == null){return 0;}//找到左边,如果左边不满足,则自身也不满足int left = getH(node.left);if(left == -1){return -1;}//同理,右边同样逻辑int right = getH(node.right);if(right == -1){return -1;}//注意下面判别式,判断左右高度差值是否大于1//大了肯定不满足了//否则我们给出一个最大高度if(Math.abs(left - right) > 1){return -1;}else{return Math.max(left, right) + 1;}}
}

相关文章:

每日5题Day22 - LeetCode 106 - 110

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;106. 从中序与后序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {…...

【Python】读取文件夹中所有excel文件拼接成一个excel表格 的方法

我们平常会遇到下载了一些Excel文件放在一个文件夹下&#xff0c;而这些Excel文件的格式都一样&#xff0c;这时候需要批量这些文件合并成一个excel 文件里。 在Python中&#xff0c;我们可以使用pandas库来读取文件夹中的所有Excel文件&#xff0c;并将它们拼接成一个Excel表…...

7. 通配符和正则表达式

文章目录 7.1 通配符7.1.1 通配符介绍7.1.2 通配符示例 7.2 正则表达式7.2.1 grep命令7.2.2 基本正则表达式7.2.3 扩展正则表达式 7.1 通配符 在 Shell 中通配符用于查找文件名和目录名。它是由 Shell 处理的&#xff0c;只会出现在命令的参数中。 7.1.1 通配符介绍 * 匹…...

ROS2底层机制源码分析

init ->init_and_remove_ros_arguments ->init ->Context::init 保存初始化传入的信号 ->install_signal_handlers→SignalHandler::install 开线程响应信号 ->_remove_ros_arguments 移除ros参数 ->SingleNodeManager::instance().…...

超越 Transformer开启高效开放语言模型的新篇章

在人工智能快速发展的今天&#xff0c;对于高效且性能卓越的语言模型的追求&#xff0c;促使谷歌DeepMind团队开发出了RecurrentGemma这一突破性模型。这款新型模型在论文《RecurrentGemma&#xff1a;超越Transformers的高效开放语言模型》中得到了详细介绍&#xff0c;它通过…...

快速排序-Hoare 递归版 C语言

个人主页点这里~ 快速排序的简介: 快速排序是Hoare于1962年提出的一种 二叉树结构 的 交换 排序方法&#xff0c;其基本思想为&#xff1a;任取待排序元素序列中 的某元素作为 基准值 &#xff0c;按照该排序码将待排序集合分割成 两子序列 &#xff0c; 左子序列中所有元素均 …...

C语言经典指针运算笔试题图文解析

指针运算常常出现在面试题中&#xff0c;画图解决是最好的办法。 题目1&#xff1a; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&…...

使用 KubeKey v3.1.1 离线部署原生 Kubernetes v1.28.8 实战

今天&#xff0c;我将为大家实战演示&#xff0c;如何基于操作系统 openEuler 22.03 LTS SP3&#xff0c;利用 KubeKey 制作 Kubernetes 离线安装包&#xff0c;并实战离线部署 Kubernetes v1.28.8 集群。 实战服务器配置 (架构 1:1 复刻小规模生产环境&#xff0c;配置略有不…...

DOS 命令

Dos&#xff1a; Disk Operating System 磁盘操作系统, 简单说一下 windows 的目录结构。 ..\ 到上一级目录 常用的dos 命令&#xff1a; 查看当前目录是有什么内容 dir dir d:\abc2\test200切换到其他盘下&#xff1a;盘符号 cd : change directory 案例演示&#xff1a;切换…...

如何用Java程序实现一个简单的消息队列?

在Java程序中&#xff0c;可以使用内置的java.util.concurrent.BlockingQueue作为消息队列存放的容器&#xff0c;来实现一个简单的消息队列。 具体实现如下&#xff0c;在这个例子中&#xff0c;我们创建了一个生产者线程和一个消费者线程&#xff0c;他们共享同一个阻塞队列…...

OpenAI 宕机事件:GPT 停摆的影响与应对

引言 2024年6月4日&#xff0c;OpenAI 的 GPT 模型发生了一次全球性的宕机&#xff0c;持续时间长达8小时。此次宕机不仅影响了OpenAI自家的服务&#xff0c;还导致大量用户涌向竞争对手平台&#xff0c;如Claude和Gemini&#xff0c;结果也导致这些平台出现故障。这次事件的广…...

linux常用的基础命令

ls - 列出目录内容。 cd - 更改目录。 pwd - 打印当前工作目录。 mkdir - 创建新目录。 rmdir - 删除空目录。 touch - 创建新文件或更新现有文件的时间戳。 cp - 复制文件或目录。 mv - 移动或重命名文件或目录。 rm - 删除文件或目录。 cat - 显示文件内容。 more - 分页显示…...

618家用智能投影仪推荐:这个高性价比品牌不容错过

随着科技的不断进步&#xff0c;家庭影院的概念已经从传统的大屏幕电视逐渐转向了更为灵活和便携的家用智能投影仪。随着618电商大促的到来&#xff0c;想要购买投影仪的用户们也开始摩拳擦掌了。本文将从投影仪的基础知识入手&#xff0c;为您推荐几款性价比很高的投影仪&…...

自愿离婚协议书

自愿离婚协议书 男方&#xff08;夫&#xff09;&#xff1a; 女方&#xff08;妻&#xff09;&#xff1a; 双方现因 原因&#xff0c;导致夫妻情感已破裂&#xff0c;自愿离婚…...

WPS JSA 宏脚本入门和样例

1入门 WPS window版本才支持JSA宏的功能。 可以自动化的操作文档中的一些内容。 参考文档&#xff1a; WPS API 参考文档&#xff1a;https://open.wps.cn/previous/docs/client/wpsLoad 微软的Word API文档&#xff1a;Microsoft.Office.Interop.Word 命名空间 | Microsoft …...

Printing and Exporting

打印 大多数DevExpress。NET控件&#xff08;XtraGrid、XtraPivotGrid、XttraTreeList、XtraScheduler、XtraCharts&#xff09;提供打印和导出功能。 所有可打印的DevExpress.NET控件是使用XtraPrinting库提供的方法打印的。 若要确定预览和打印选项是否可用&#xff0c;请检…...

c++【入门】正多边形每个内角的度数

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 根据多边形内角和定理&#xff0c;正多边形内角和等于&#xff1a;&#xff08;n &#xff0d; 2&#xff09;180(n大于等于3且n为整数&#xff09;&#xff08;如下图所示是三角形、四边形、五边形、六边形的形状&#xff09…...

spring boot3登录开发-邮箱登录/注册接口实现

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 上文衔接 内容简介 功能分析 所需依赖 邮箱验证登录/注册实现 1.创建交互对象 2.登录注册业务逻辑实…...

数据结构-二叉搜索树

二叉搜索树&#xff1a;BST(Binary Search Tree) 二叉搜索树是二叉树&#xff0c;可以为空&#xff0c;如果不为空&#xff0c;满足以下性质&#xff1a; 非空左子树的所有键值小于其根节点的键值非空右子树的所有键值大于其根节点的键值左、右字数本身也都是二叉搜索树 二叉…...

JUnit:Java开发者不可或缺的单元测试框架

在软件开发过程中&#xff0c;测试是确保代码质量的关键环节。单元测试作为测试体系的基础&#xff0c;对提升代码质量、降低bug率、增强软件稳定性具有重要作用。JUnit 作为 Java 语言事实上的标准单元测试框架&#xff0c;已经成为 Java 开发者进行单元测试的首选工具。本文将…...

Apollo LQR横向控制实战:从Simulink到C++的完整迁移指南(附ROS节点代码)

Apollo LQR横向控制工程化实战&#xff1a;从仿真验证到C落地的深度解析 在自动驾驶系统的开发流程中&#xff0c;控制算法的工程化落地往往是最具挑战性的环节之一。本文将聚焦LQR&#xff08;线性二次调节器&#xff09;算法在Apollo开源框架中的实际应用&#xff0c;通过完…...

告别卡顿!GSYVideoPlayer的ExoPlayer内核配置全攻略(支持HLS/m3u8直播流)

GSYVideoPlayer的ExoPlayer内核深度调优&#xff1a;打造极致流畅的HLS直播体验 去年接手一个海外直播项目时&#xff0c;遇到最头疼的问题就是m3u8流媒体的卡顿和延迟。测试了各种方案后&#xff0c;最终通过GSYVideoPlayer的ExoPlayer内核解决了这个难题。今天就把这些实战经…...

Mi-Create终极指南:三步快速创建专属小米手表表盘

Mi-Create终极指南&#xff1a;三步快速创建专属小米手表表盘 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 想要为你的小米手表打造独一无二的个性化表盘吗&…...

Meixiong Niannian与SpringBoot微服务架构

Meixiong Niannian与SpringBoot微服务架构 1. 引言 在当今快速发展的AI应用领域&#xff0c;如何将强大的画图引擎无缝集成到企业级系统中是一个关键挑战。Meixiong Niannian作为一款高性能的AI画图引擎&#xff0c;能够生成高质量的图像内容&#xff0c;而SpringBoot微服务架…...

Phi-3 Forest Laboratory创意图像提示词生成效果:将抽象概念转化为视觉描述

Phi-3 Forest Laboratory创意图像提示词生成效果&#xff1a;将抽象概念转化为视觉描述 你有没有过这样的经历&#xff1f;脑子里冒出一个特别酷的画面&#xff0c;比如“赛博朋克风格的孤独”&#xff0c;或者“初夏清晨的宁静”&#xff0c;感觉特别有味道&#xff0c;但就是…...

all-MiniLM-L6-v2开发者案例:集成至LangChain实现动态RAG检索链路

all-MiniLM-L6-v2开发者案例&#xff1a;集成至LangChain实现动态RAG检索链路 在构建智能问答或文档分析系统时&#xff0c;一个核心挑战是如何从海量文本中快速、准确地找到最相关的信息。传统的基于关键词的搜索&#xff0c;往往因为无法理解语义而“答非所问”。今天&#…...

OpenClaw安全配置要点:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF本地运行权限管理

OpenClaw安全配置要点&#xff1a;Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF本地运行权限管理 1. 为什么需要特别关注OpenClaw的安全配置&#xff1f; 第一次在本地部署OpenClaw时&#xff0c;我犯了一个新手常见的错误——直接使用默认配置启动服务。结果第二天…...

MaterialSkin 2:WinForms应用的Material Design现代化解决方案

MaterialSkin 2&#xff1a;WinForms应用的Material Design现代化解决方案 【免费下载链接】MaterialSkin 项目地址: https://gitcode.com/gh_mirrors/mat/MaterialSkin 在传统Windows Forms应用程序面临界面陈旧、用户体验落后的挑战下&#xff0c;WinForms现代化改造…...

企业级vGPU选型指南:从GRID vApps到vCS,4种NVIDIA虚拟GPU场景化对比

企业级虚拟GPU技术选型全景指南&#xff1a;四大应用场景深度解析 在数字化转型浪潮中&#xff0c;图形处理单元(GPU)的虚拟化技术正成为企业IT架构的关键支柱。无论是设计团队的3D建模、数据分析师的机器学习任务&#xff0c;还是全公司范围的虚拟桌面部署&#xff0c;虚拟GPU…...

泛微OA单点登录配置全攻略:从零开始实现第三方系统免密登录

泛微OA单点登录深度实战&#xff1a;Token机制与系统集成最佳实践 对于企业IT架构师和运维团队而言&#xff0c;系统间的无缝衔接一直是提升工作效率的关键。想象一下这样的场景&#xff1a;销售人员在CRM系统中完成客户跟进后&#xff0c;无需反复登录就能直接跳转到OA系统提…...