【LeetCode:2476. 二叉搜索树最近节点查询 + 中序遍历 + 有序表】

Ubuntu 20.04 LTS下5分钟搞定ONLYOFFICE协作空间社区版(Docker版保姆级教程) 本文提供了一份在Ubuntu 20.04 LTS系统上,通过Docker快速部署ONLYOFFICE协作空间社区版的保姆级教程。内容涵盖从系统准备、Docker环境搭建,到执行自动化安装脚本、完成Web初始化的全流程,并详细说明了部署后的安全配置、数据备份及基本运维要点,帮助用户高效构建私有、安全、可控的团队文档协作平台。 阅读详情

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,优快云-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🚩 题目链接

⛲ 题目描述

给你一个 二叉搜索树 的根节点 root ,和一个由正整数组成、长度为 n 的数组 queries 。

请你找出一个长度为 n 的 二维 答案数组 answer ,其中 answer[i] = [mini, maxi] :

mini 是树中小于等于 queries[i] 的 最大值 。如果不存在这样的值,则使用 -1 代替。
maxi 是树中大于等于 queries[i] 的 最小值 。如果不存在这样的值,则使用 -1 代替。
返回数组 answer 。

示例 1 :
在这里插入图片描述

输入:root = [6,2,13,1,4,9,15,null,null,null,null,null,null,14], queries = [2,5,16]
输出:[[2,2],[4,6],[15,-1]]
解释:按下面的描述找出并返回查询的答案:

  • 树中小于等于 2 的最大值是 2 ,且大于等于 2 的最小值也是 2 。所以第一个查询的答案是 [2,2] 。
  • 树中小于等于 5 的最大值是 4 ,且大于等于 5 的最小值是 6 。所以第二个查询的答案是 [4,6] 。
  • 树中小于等于 16 的最大值是 15 ,且大于等于 16 的最小值不存在。所以第三个查询的答案是 [15,-1] 。

示例 2 :

在这里插入图片描述

输入:root = [4,null,9], queries = [3]
输出:[[-1,4]]
解释:树中不存在小于等于 3 的最大值,且大于等于 3 的最小值是 4 。所以查询的答案是 [-1,4] 。

提示:

树中节点的数目在范围 [2, 105] 内
1 <= Node.val <= 106
n == queries.length
1 <= n <= 105
1 <= queries[i] <= 106

🌟 求解思路&实现代码&运行结果


⚡ 中序遍历 + 有序表

🥦 求解思路
  1. 该题目先通过中序遍历来找到一棵二叉树的顺序,然后遍历queries中的数字,通过有序表来找到大于某一个数字的最小值和小于某一个数的最大值。记录到每次的结果中,最终返回。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下递归和迭代的解法。
🥦 实现代码
/**
 * Definition for a binary tree node.
 * public 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;
 * }
 * }
 */
class Solution {

    TreeMap<Integer, Integer> map = new TreeMap<>();

    public List<List<Integer>> closestNodes(TreeNode root, List<Integer> queries) {
        List<List<Integer>> ans = new ArrayList<>();
        if (root == null)
            return ans;
        dfs(root);
        map.put(-1, -1);
        for (int v : queries) {
            List<Integer> nums = new ArrayList<>();
            nums.add(map.floorKey(v) == null ? -1 : map.floorKey(v));
            nums.add(map.ceilingKey(v) == null ? -1 : map.ceilingKey(v));
            ans.add(nums);
        }
        return ans;
    }

    public void dfs(TreeNode root) {
        if (root == null)
            return;
        dfs(root.left);
        map.put(root.val, root.val);
        dfs(root.right);
    }

}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

[Dify实战] 解决 Dify 导入 DSL 文件时报 “DSL 版本差异” 的兼容性问题 摘要:本文针对Dify开发者在导入.dsl文件时遇到的版本警告提示问题,分析其根源在于DSL文件与当前系统版本不一致。解决方案是通过导出当前Dify应用的DSL文件查看版本号,手动修改待导入文件的version字段以匹配。文章详细说明了操作步骤,并给出使用专业编辑器、避免修改其他字段等实用建议,帮助开发者规避版本不兼容问题,提升多模态AI应用开发效率。 阅读详情

相关推荐

五、2K0300 久久派开发板的GPIO控制与Shell脚本自动化实战

本文详细介绍了基于龙芯2K0300处理器的久久派开发板的GPIO控制方法,通过sysfs文件系统实现LED控制和传感器读取。重点讲解了Shell脚本自动化实战,包括LED闪烁、流水灯效果和传感器数据采集,为物联网项目开发提供完整解决方案。

silver的专栏 686

LeetCode 2476.二叉搜索树最近节点查询:中序遍历 + 二分查找

LeetCode 2476.二叉搜索树最近节点查询:中序遍历 + 二分查找 给你一个 二叉搜索树 的根节点 root ,和一个由正整数组成、长度为 n 的数组 queries 。 请你找出一个长度为 n 的 二维 答案数组 answer ,其中 answer[i] = [mini, maxi] : mini 是树中小于等于 queries[i] 的 最大值 。如果不存在这样的值,则使用 -1 代替。 maxi 是树中大于等于 queries[i] 的 最小值 。如果不存在这样的值,则使用 -1 代替。

<font color="Pink">Tisfy的博客</font> 1179

Win11系统下Notepad++右键菜单失效?3种修复方法实测有效(附注册表备份指南)

本文针对Windows 11系统中Notepad++右键菜单失效的常见问题,提供了三种经过实测有效的修复方法。核心解决方案包括使用官方NppShell.dll重新注册、手动修复注册表项以及系统级问题排查,并详细说明了操作前的注册表备份指南,确保修复过程安全可靠。

m2n3b4v5c6的博客 328

[HOT 100] 2476. 二叉搜索树最近节点查询

2476. 二叉搜索树最近节点查询 - 力扣(LeetCode)](https://leetcode.cn/problems/closest-nodes-queries-in-a-binary-search-tree/description/)给你一个 二叉搜索树 的根节点。,和一个由正整数组成、长度为。

人生需要动态规划 学习需要贪心算法 483

Windows域账户无管理员权限也能装软件?3步搞定UAC设置(附安全提醒)

本文探讨了在Windows域环境中,如何通过配置用户账户控制(UAC)实现临时提权,让无管理员权限的域账户也能安装软件。文章详细介绍了三步走策略:临时加入本地管理员组、调整UAC行为以及至关重要的权限回收,并提供了脚本化部署方案与安全实践指南,旨在平衡企业IT管理的效率与安全。

fox11的博客 756

Keil MDK 5.37及之后版本 安装AC5(ARMCC)编译器详细步骤

由于Keil 5.37及之后版本不再默认安装AC5(ARMCC)编译器,这就会导致由AC5编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

s_Modesto的博客 1万+

中序遍历+二分,LeetCode 2476. 二叉搜索树最近节点查询

直接在中序序列上二分即可

EQUINOX1的博客 541

LeetCode 2476.二叉搜索树最近节点查询

输入:root = [6,2,13,1,4,9,15,null,null,null,null,null,null,14], queries = [2,5,16]解释:树中不存在小于等于 3 的最大值,且大于等于 3 的最小值是 4。所以查询的答案是 [-1,4]。mini 是树中小于等于 queries[i] 的 最大值。如果不存在这样的值,则使用 -1 代替。输入:root = [4,null,9], queries = [3]输出:[[2,2],[4,6],[15,-1]]输出:[[-1,4]]

tus00000的博客 478

手把手教你用Arduino Uno控制meArm机械臂(附完整代码+避坑指南)

本文提供了一份详尽的meArm机械臂控制指南,涵盖从Arduino Uno硬件连接到Servo库编程的完整流程。重点讲解了如何通过独立供电、软件限位和平滑运动函数实现稳定控制,并设计了串口指令协议与高级功能,帮助创客有效规避舵机抖动、电源不足等常见问题,让机械臂运行更流畅可靠。

gpt4scribbler的博客 538

X线DR医学图像 --- DR医用滤线栅及摩尔纹详解 (二) 摩尔纹的产生机理

1,横向摩尔纹的表现 2,纵向摩尔纹的表现 3,摩尔纹在pitch = 143μm(注:pitch为采样间隔/周期)的FPD上的表现。 4,摩尔纹的危害(严重的影响了临床诊断) 5,摩尔纹对胸片肺部肺纹理的破坏 6,滤线栅的频率(滤线栅生产厂家的产品参数)。判断摩尔纹产生的重要依据之一 7,DR平板探测器的采样频率/空间极限分辨率 l.........

松下J27录放机 4979

力扣2476二叉搜索树最近节点查询

给你一个 二叉搜索树 的根节点root,和一个由正整数组成、长度为n的数组queries。请你找出一个长度为 n 的 二维 答案数组answer,其中mini是树中小于等于queries[i]的 最大值。如果不存在这样的值,则使用-1代替。maxi 是树中大于等于queries[i]的 最小值。如果不存在这样的值,则使用-1代替。返回数组answer。

qq_56460466的博客 397

【RT-DETR实战】159、改进九:知识蒸馏从YOLOv8教师模型学习

摘要: 本文探讨了知识蒸馏在RT-DETR目标检测模型中的应用挑战与实践经验。作者以YOLOv8作为教师模型,针对特征对齐、损失函数设计和训练策略等核心问题,提出了适配器模块、动态权重调整和多阶段训练等优化方案。文章重点分析了教师模型选择、特征图匹配、损失函数组合等关键环节的实战技巧,并总结了蒸馏模型部署时的注意事项。通过实验验证,作者指出知识蒸馏应关注模型"思维方式"的迁移而非简单特征复制,并强调合理评估指标和教师模型选择的重要性。最后,作者分享了技术迭代中的边际效应认知,为工业场景下的模型优化提供了实用

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 268

D.二分查找-进阶——2476. 二叉搜索树最近节点查询

D.二分查找-进阶——2476. 二叉搜索树最近节点查询解析

要努力去发光,而不是被照亮~ 177

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

力扣2476.二叉搜索树最近节点查询

二叉搜索树 + 中序遍历 = 严格递增数组。

Pisasama的博客 376

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

二分查找(八)2476. 二叉搜索树最近节点查询、lower_bound库

树中小于等于 16 的最大值是 15 ,且大于等于 16 的最小值不存在。所以第三个查询的答案是 [15,-1]。- 树中小于等于 2 的最大值是 2 ,且大于等于 2 的最小值也是 2。所以第一个查询的答案是 [2,2]。- 树中小于等于 5 的最大值是 4 ,且大于等于 5 的最小值是 6。所以第二个查询的答案是 [4,6]。由于是二叉搜索树,利用中序遍历维护一个递增数组。,和一个由正整数组成、长度为。在递增数组的基础上进行二分搜索。对于几种结果的分类讨论。

曾几何时的博客 361

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

leetcode刷题记录37-2476. 二叉搜索树最近节点查询

我的思路就是:首先题目给了一个二叉搜索树,我们直接中序遍历把树节点值全存一个数组arr里,易知这个数组有序,接着直接二分查找对应结点即可。- 树中小于等于 16 的最大值是 15 ,且大于等于 16 的最小值不存在。- 树中小于等于 2 的最大值是 2 ,且大于等于 2 的最小值也是 2。所以第一个查询的答案是 [2,2]。- 树中小于等于 5 的最大值是 4 ,且大于等于 5 的最小值是 6。树中不存在小于等于 3 的最大值,且大于等于 3 的最小值是 4。所以查询的答案是 [-1,4]。

xianduan_的博客 477

二叉搜索树(BST)

目录 一,二叉搜索树(二叉查找树,二叉排序树) 二,OJ实战 力扣98. 验证二叉搜索树 力扣 96. 不同的二叉搜索树 力扣 95. 不同的二叉搜索树 II 一,二叉搜索树(二叉查找树,二叉排序树) 二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 二,OJ实战 力扣98. 验证二叉搜索树 题目: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树...

nameofcsdn的博客 4471

层序遍历+小根堆,LeetCode 2476. 二叉搜索树最近节点查询

层序遍历+小根堆

EQUINOX1的博客 530

LeetCode刷题笔记 - 二叉搜索树

LeetCode刷题笔记 - 二叉搜索树

流水账 1508

2024.2.24力扣每日一题——二叉搜索树最近节点查询

2024.2.24 力扣每日一题 二叉搜索树最近节点查询 二分查找

weixin_42075274的博客 380

每日算法-250413

记录一下今天解决的几道 LeetCode 算法题。

2403_83543687的博客 858

【Leetcode】2476. Closest Nodes Queries in a Binary Search Tree

给定一棵BST只含正整数,再给定若干询问,每次询问给定一个正整数。先中序遍历,然后对每个询问二分。

数学、算法爱好者的博客 196

Day114 | 灵神 | 二叉树 | 二叉搜索树的最小绝对差

这道题目拿到手就觉得在树中递归查找太费劲了,还是转化为有序数组在数组中使用二分比较方便。2.二分查找queries[i]即可找到最大最小值。1.中序遍历root得到有序数组arr。

m0_74795952的博客 313

LeetCode 每日一题 2024/2/19-2024/2/25

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 512

LeetCode——Weekly Contest 320(附动态规划解题思路)

LeetCode周赛第320场记录。

zheyuan的博客 887
上一篇: 【LeetCode:2583. 二叉树中的第 K 大层和 + BFS】
下一篇: 【LeetCode:938. 二叉搜索树的范围和 + DFS】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值