Problem: 96. 不同的二叉搜索树

文章目录

  • 数学补充
  • 快速排序
  • Code

数学补充

卡特兰数
https://baike.baidu.com/item/catalan/7605685?fr=aladdin

快速排序

把n个数按从小到大从1到n编号,则这个形成的所有二叉树就是快速排序的所有情况

可以看出来快排的最坏时间复杂度为OnOnOn,即二叉树为单链表时

最好复杂度即两边均匀分布,Olog2nOlog_2 nOlog2​n

这与二叉搜索树的性质:中序遍历为有序序列不谋而合

Code


class Solution {
public://快速排序的最好复杂度和最坏复杂度int dfs(int n,vector<int>& trees_num){if(trees_num[n]!=0) return trees_num[n];int tmp=0;for(int i=0;i<n;i++)tmp=tmp+dfs(n-1-i,trees_num)*dfs(i,trees_num);trees_num[n]=tmp;return tmp;}int numTrees(int n) {vector<int> trees_num(25);trees_num[0]=1;trees_num[1]=1;// trees_num[2]=2;// trees_num[3]=5;return dfs(n,trees_num);}
};

力扣96.不同的二叉搜索树相关推荐

  1. 力扣——有序链表转换二叉搜索树

    给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定的有序链表: [-10 ...

  2. 力扣题目——98. 验证二叉搜索树

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具 ...

  3. 力扣第235题“二叉搜索树的最近公共先祖”的解题思路

    参考代码: class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {w ...

  4. LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ

    微信搜一搜:bigsai 算法文章题解全部收录在github仓库bigsai-algorithm 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 92反转链表Ⅱ&93复 ...

  5. leetcode - 96. 不同的二叉搜索树

    96. 不同的二叉搜索树 ------------------------------------------ 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 ...

  6. 《dp补卡——343. 整数拆分、96. 不同的二叉搜索树》

    343. 整数拆分 1.确定dp数组以及下标含义. dp[i]:分拆数字i,可以得到的最大的乘积 2.确定递推公式: dp[i]最大乘积出处:从1遍历j到i,j * dp[i-j] 与 j * (i- ...

  7. Leetcode 96. 不同的二叉搜索树

    Leetcode 96. 不同的二叉搜索树 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/unique-binary- ...

  8. 【力扣动态规划基础专题】:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树

    /** 动态规划专题:这是最简单的并且已经给出了转移方程,平时我们用dp[]数组来表示转移方程转移方程: dp[n] = dp[n-1]+dp[n-2]初始值:dp[0] = 0 , dp[1] = ...

  9. 96. 不同的二叉搜索树

    给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1         3   ...

  10. LeetCode 96. 不同的二叉搜索树(DP)

    1. 题目 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例:输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / ...

最新文章

  1. 总线上加三个终端电阻可以吗_汽车维修中CAN总线的常规检修方法!
  2. 计算机网络中的物理层
  3. HTML语法初探(一)
  4. Spring注解和XML配置文件孰优孰劣
  5. 阿里云asp主机 后台登录一直提示验证码错误_拖欠阿里云一分钱,结果?
  6. [Leetcode] Pascal's Triangle II
  7. 对称二叉树(C++)
  8. dubbo源码解析-spi(四)
  9. Postman如何生成测试报告
  10. Serializer对象
  11. java使用极光推送_java使用第三方推送-极光推送
  12. 最全面的Microsoft Office下载
  13. meta标签属性及其功能
  14. 读史可以明智_明智之举:获得满意的广告
  15. 各种音视频编解码学习详解(7)--微软Windows Media系列
  16. Advanced Installer Architect创作工具
  17. js 基础词汇及方法整理
  18. 认识SlackwareLinux及制作系统安装磁片之关於bootdisk(转)
  19. c语言拔萝卜算法,拔萝卜优秀说课稿
  20. html 视频超出隐藏,html – 如何阻止视频标签溢出其容器div.

热门文章

  1. 法国电子与计算机信息工程学校排名,法国工程学院的十大排名情况
  2. 【集训队作业】LYRC
  3. 树莓派实现实时视频监控
  4. Java带宽限速器、Springboot限速器
  5. 西门子840d备份到u盘_西门子840D数控系统备份及恢复方法(三)
  6. 如何利用matlab根据excel画三维图像
  7. 「笔耕不辍」常见远程调用协议
  8. 用于深度学习的演化神经AutoML
  9. 如何设计一个可用的web容器
  10. 理性分析PDD,技术BUG?市场误操?还是……