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

leetcode 108 将有序数组转换为二叉搜索树

题意

将升序排序的数组,转换为一棵平衡二叉搜索树。

思路

我没啥思路。看题解写的这题。

代码

class Solution {
public:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        return helper ( nums, 0, nums.size() - 1 );
    }

    TreeNode* helper( vector<int> &nums, int left, int right ) {
        if ( left > right ) {
            return nullptr;
        }

        int mid = ( left + right ) / 2;
        TreeNode* root = new TreeNode( nums[mid] );
        root -> left = helper( nums, left, mid - 1 );
        root -> right = helper( nums, mid + 1, right );

        return root;
    }
};

分析

平衡的二叉搜索树就是尽可能让 bst 低一些。给一个向量,并且是按照升序排列的,二叉搜索树的中序遍历也是按照升序排列的。所以可以递归写一遍二叉树的中序遍历。选择根节点的时候选择中间靠左的节点,整数除法可以保证每次选择中间靠左的节点。bst 的查找类似于二分查找,递归做一遍就可以构建出来了。

最后

我一定可以把简单和中等算法题写出来!!

http://www.dtcms.com/a/86236.html

相关文章:

  • HQChart使用教程46-K线图如何对接第3方数据42-DRAWTEXT_LINE数据结构
  • 20届智能车赛规则
  • python环境出现出现 pip: command not found 错误
  • 什么是张量计算
  • 动态规划:从暴力递归到多维优化的算法进化论(C++实现)
  • C++ 关系运算符重载和算术运算符重载的例子,运算符重载必须以operator开头
  • 【golang学习之旅】使用VScode安装配置Go开发环境
  • Linux文件系统知识
  • (undone) MIT6.824 Lecture 01 - Introduction
  • 【极速版 -- 大模型入门到进阶】快速了解大型语言模型
  • Modern C++面试题及参考答案
  • Smith3.0 4.0的阻抗匹配操作方法
  • Apache Doris学习
  • 让 MGR 不从 Primary 的节点克隆数据?
  • 字节DAPO算法:改进DeepSeek的GRPO算法-解锁大规模LLM强化学习的新篇章(代码实现)
  • NLP高频面试题(十一)——RLHF的流程有哪些
  • odata 搜索帮助
  • CS2 demo manager 安装
  • git 合并多次提交 commit
  • Problem: 73. 矩阵置零
  • Unity网络开发快速回顾
  • 人工智能在现代科技中的应用和未来发展趋势
  • Java问题小记——入职心得
  • 风控笔记4——市场风险管理
  • 【Python入门速学】2.4. 逻辑运算符
  • SQL Server查询计划操作符(7.3)——查询计划相关操作符(11)
  • 人工智能之数学基础:瑞利商与特征值的关系
  • JAVA组件的利用漏洞 Shlr搜索引擎 shiro身份 Log4j日志
  • 常见中间件漏洞(tomcat)
  • 深入解析 Spring IOC AOP:原理、源码与实战