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

华为OD机考双机位C卷 - 二维伞的雨滴效应 (Java Python JS GO C++ C)

二维伞的雨滴效应

2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷

华为OD机试双机位C卷真题目录点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)

题目描述

普通的伞在二维平面世界中,左右两侧均有一条边,而两侧伞边最下面各有一个伞坠子,雨滴落到伞面,逐步流到伞坠处,会将伞坠的信息携带并落到地面,随着日积月累,地面会呈现伞坠的信息。

1、为了模拟伞状雨滴效应,用二叉树来模拟二维平面伞(如下图所示),现在输入一串正整数数组序列(不含0,数组成员至少是1个) ,若此数组序列是二叉搜索树的前序遍历的结果,那么请输出一个返回值1,否则输出0.

2、同时请将此序列构成的伞状效应携带到地面的数字信息输出来(左边伞坠信息,右边伞坠信息,详细参考示例图地面上数字),若此树不存在左或右扇坠,则对应位置返回0。同时若非 二叉排序树那么左右伞坠信息也返回0。

输入描述

1个通过空格分割的整数序列字符串,数组不含0,数组成员至少1个,输入的数组的任意两个数字都互不相同,最多1000个正整数,正整数值范围1~655350

输出描述

输出如下三个值,以空格分隔: 是否二叉排序树,左侧地面呈现的伞坠数字值,右侧地面呈现的伞坠数字值.
若是二叉排序树,则输出1,否则输出0 (其左右伞坠值也直接赋值0) 。
若不存存在左侧或者右侧伞坠值,那么对应伞坠值直接赋值0。

用例

输入

8 3 1 6 4 7 10 14 13

输出

1 1 13 

说明

1表示是二叉搜索 树前序遍历结果,1表示左侧地面呈现的伞坠数字值,13表示右侧地面呈现的伞坠数字值

解题思路

这道题目主要涉及两个核心问题:

  1. 判断给定的前序遍历序列是否能构成一个有效的二叉搜索树(BST)
  2. 找出"伞坠"的位置并输出其值

核心算法思想

1. 二叉搜索树判断与构建

这个问题使用了一个巧妙的方法,同时完成BST的判断和构建

  • 分区思想:在BST的前序遍历中,根节点后紧跟的是左子树节点,然后是右子树节点
  • 值域约束:BST中,左子树的所有节点值必须小于根节点,右子树的所有节点值必须大于根节点

算法步骤:

  1. 对于当前子树范围[start, end],根节点值为preOrder[start]
  2. 从start+1开始寻找第一个大于等于根节点的位置i,则[start+1, i-1]为左子树范围
  3. 从i开始检查到end,所有值必须大于根节点,否则不是有效BST
  4. 递归检查左子树和右子树

这种方法的时间复杂度为O(n²),其中n是序列长度。

2. 伞坠值获取

伞坠值对应二叉树最左侧和最右侧的叶子节点:

  • 左伞坠:从根开始,总是尽量往左走,如果左子节点为空才往右
  • 右伞坠:从根开始,总是尽量往右走,如果右子节点为空才往左
  • level参数:用于区分根节点和其他节点,只有level>0时才返回叶子节点的值
http://www.jsqmd.com/news/451639/

相关文章:

  • Flutter 三方库 iregexp 的鸿蒙化适配指南 - 掌控正则资产、精密 Case-insensitive 治理实战、鸿蒙级文本专家
  • 小白也能懂:Xinference-v1.17.1在Anaconda下的保姆级安装教程
  • DeepSeek推广服务联系哪家?DeepSeek推广服务联系方式 - 品牌2026
  • 怎么联系DeepSeek推广服务商?2026年服务商联系方式与能力指南 - 品牌2026
  • Qwen3-VL-4B Pro部署案例:K8s集群中水平扩展多实例图文问答服务
  • 华为OD机考双机位C卷 - 乘坐保密电梯 (Java Python JS GO C++ C)
  • DeepSeek推广怎么做?2026年DeepSeek推广服务商联系方式 - 品牌2026
  • DRG Save Editor实战指南:优化游戏体验的3个创新方案
  • 皮尔逊相关系数实战:用Excel和Python快速分析数据相关性(附完整代码)
  • Cosmos-Reason1-7B在软件测试领域的应用:自动化测试用例生成与代码分析
  • 提示工程架构师实战:未来AI应用从概念到落地的6步塑造流程
  • Java引入 Jedis 的 maven 依赖:
  • vLLM部署ERNIE-4.5-0.3B-PT性能评测:吞吐量/首token延迟/P99响应时间实测
  • nlp_structbert_sentence-similarity_chinese-large 开发入门:使用IDEA进行Java客户端SDK开发与调试
  • 3个核心优势的智能激活方案:面向办公用户的系统与软件授权管理指南
  • 基于GTE+SeqGPT的智能内容审核系统开发
  • Git-RSCLIP在Web开发中的应用:遥感图像在线检索系统
  • 别再用默认设置了!Kibana热力图高级配置指南(以机票价格分析为例)
  • Local AI MusicGen惊艳案例:AI生成音乐用于无障碍内容描述音效增强
  • nlp_structbert_sentence-similarity_chinese-large 部署效果对比:不同GPU配置下的性能基准测试
  • NifSkope:重新定义游戏模型编辑的技术范式
  • 长文档处理神器:实测通义千问3-4B如何帮你快速总结万字报告
  • Qwen3-ASR-1.7B开源大模型:多语种识别在国际展会同传辅助系统中的落地
  • NifSkope:革新性3D模型编辑工具的技术重构与行业赋能
  • Nano-Banana入门教程:disassemble clothes核心触发词组合避坑指南
  • LaserGRBL:开源激光雕刻控制软件的深度探索与实践指南
  • 文脉定序系统在重装系统后知识恢复中的应用:个人文档智能重组
  • NifSkope技术架构与应用实践:开源3D模型工具的架构演进与实战指南
  • NifSkope:游戏模型编辑效率革命的技术架构与产业价值
  • python Hadoop spark 协同过滤民宿推荐系统