力扣96.不同的二叉搜索树
Problem: 96. 不同的二叉搜索树
文章目录
- 数学补充
- 快速排序
- Code
数学补充
卡特兰数
https://baike.baidu.com/item/catalan/7605685?fr=aladdin
快速排序
把n个数按从小到大从1到n编号,则这个形成的所有二叉树就是快速排序的所有情况
可以看出来快排的最坏时间复杂度为OnOnOn,即二叉树为单链表时
最好复杂度即两边均匀分布,Olog2nOlog_2 nOlog2n
这与二叉搜索树的性质:中序遍历为有序序列不谋而合
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. 示例: 给定的有序链表: [-10 ...
- 力扣题目——98. 验证二叉搜索树
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具 ...
- 力扣第235题“二叉搜索树的最近公共先祖”的解题思路
参考代码: class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {w ...
- LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ
微信搜一搜:bigsai 算法文章题解全部收录在github仓库bigsai-algorithm 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 92反转链表Ⅱ&93复 ...
- leetcode - 96. 不同的二叉搜索树
96. 不同的二叉搜索树 ------------------------------------------ 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 ...
- 《dp补卡——343. 整数拆分、96. 不同的二叉搜索树》
343. 整数拆分 1.确定dp数组以及下标含义. dp[i]:分拆数字i,可以得到的最大的乘积 2.确定递推公式: dp[i]最大乘积出处:从1遍历j到i,j * dp[i-j] 与 j * (i- ...
- Leetcode 96. 不同的二叉搜索树
Leetcode 96. 不同的二叉搜索树 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/unique-binary- ...
- 【力扣动态规划基础专题】:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树
/** 动态规划专题:这是最简单的并且已经给出了转移方程,平时我们用dp[]数组来表示转移方程转移方程: dp[n] = dp[n-1]+dp[n-2]初始值:dp[0] = 0 , dp[1] = ...
- 96. 不同的二叉搜索树
给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 ...
- LeetCode 96. 不同的二叉搜索树(DP)
1. 题目 给定一个整数 n,求以 1 - n 为节点组成的二叉搜索树有多少种? 示例:输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / ...
最新文章
- 总线上加三个终端电阻可以吗_汽车维修中CAN总线的常规检修方法!
- 计算机网络中的物理层
- HTML语法初探(一)
- Spring注解和XML配置文件孰优孰劣
- 阿里云asp主机 后台登录一直提示验证码错误_拖欠阿里云一分钱,结果?
- [Leetcode] Pascal's Triangle II
- 对称二叉树(C++)
- dubbo源码解析-spi(四)
- Postman如何生成测试报告
- Serializer对象
- java使用极光推送_java使用第三方推送-极光推送
- 最全面的Microsoft Office下载
- meta标签属性及其功能
- 读史可以明智_明智之举:获得满意的广告
- 各种音视频编解码学习详解(7)--微软Windows Media系列
- Advanced Installer Architect创作工具
- js 基础词汇及方法整理
- 认识SlackwareLinux及制作系统安装磁片之关於bootdisk(转)
- c语言拔萝卜算法,拔萝卜优秀说课稿
- html 视频超出隐藏,html – 如何阻止视频标签溢出其容器div.