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

LeetCode 面试题 04.02. 最小高度树

文章目录

  • 一、题目
  • 二、C# 题解

一、题目

  给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。

  点击此处跳转题目。

示例:

给定有序数组: [-10,-3,0,5,9],
一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:

      0 / \ -3   9 /   / -10  5 

二、C# 题解

  很基础的题目了。递归中序遍历构建二叉树:

/*** Definition for a binary tree node.* public class TreeNode {*     public int val;*     public TreeNode left;*     public TreeNode right;*     public TreeNode(int x) { val = x; }* }*/
public class Solution {public TreeNode SortedArrayToBST(int[] nums) {return Partition(nums, 0, nums.Length);}public TreeNode Partition(int[] nums, int left, int right) {if (left == right) return null;int mid = (left + right) / 2;TreeNode node = new TreeNode(nums[mid]);      // 中间元素作为头结点node.left = Partition(nums, left, mid);       // 左孩子为左方区间处理结果node.right = Partition(nums, mid + 1, right); // 右孩子为右方区间处理结果return node;}
}
  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( log ⁡ n ) O(\log n) O(logn)
http://www.lryc.cn/news/165977.html

相关文章:

  • 华为云云耀云服务器L实例评测|初始化centos镜像到安装nginx部署前端vue、react项目
  • python项目制作docker镜像,加装引用模块,部署运行!
  • Redis缓存设计与性能优化
  • 免杀对抗-Python-混淆算法+反序列化-打包生成器-Pyinstall
  • C#__线程池的简单介绍和使用
  • 安全员(岗位职责)
  • unity 使用声网(Agora)实现语音通话
  • vue2.X 中使用 echarts5.4.0实现项目进度甘特图
  • 《PostgreSQL与NoSQL:合作与竞争的关系》
  • 【FAQ】视频监控管理平台/视频汇聚平台EasyCVR安全检查相关问题及解决方法3.0
  • Java 8 新特性解读及应用实践
  • C++项目实战——基于多设计模式下的同步异步日志系统-④-日志系统框架设计
  • 计算机专业毕业设计项目推荐02-个人医疗系统(Java+原生Js+Mysql)
  • Nginx__高级进阶篇之LNMP动态网站环境部署
  • Zebec 生态 AMA 回顾:Nautilus 以及 $ZBC 的未来
  • NXP iMX8MM 修改 UART4至 Cortex-A53 核心
  • C#控制台程序中使用log4.net来输出日志
  • 用GPT干的18件事,能够真正提高学习生产力,建议收藏
  • 线性代数的本质(二)——线性变换与矩阵
  • JavaScript获取字符串的字节长度
  • [2023.09.13]: Rust Lang,避不开的所有权问题
  • Redux中间件源码解析与实现
  • 关于rsync用不了之后
  • 由一个多线程并发保存而引发的思考
  • python-vlc
  • 2023长城杯 web部分题目(seekingeasy_extension)
  • 2-1 张量数据结构
  • QSqlQuery查询语句
  • 用c语言编写出三底模型
  • 15 Python使用MySQL