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

面试热题(不同的二分搜索树)

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

 

       经典的面试题,这部分涉及了组合数学中的卡特兰数,如果对其不清楚的同学可以去看我以前的博客卡特兰数

今天用记忆化搜索以及动态规划进行讲解

  • 记忆化搜索
    //维护一个记忆化搜素int[][] memo;public int numTrees(int n) {memo=new int[n+1][n+1];return  count(1,n);}public int count(int left,int right){//单节点,直接返回1if(left>=right){return 1;}if(memo[left][right]!=0){return memo[left][right];}int res=0;//遍历区间内的每一个节点,都作为根节点的情况for(int mid=left;mid<=right;mid++){int l=count(left,mid-1);int r=count(mid+1,right);res+=l*r;}memo[left][right]=res;return res;}
  • 动态规划
   public int numTrees(int n) {//先创建一个存储的数组int[] dp=new int[n+1];dp[0]=1;//节点可能存储的位置for (int i =1; i <=n; i++) {//左边节点可能存储的个数for (int j = 0; j<i; j++) {//计算出总种类  dp[j]是左树的节点个数 dp[i-j-1]是右树的节点个数dp[i]+=dp[j]*dp[i-j-1];}}return dp[n];}

http://www.lryc.cn/news/132983.html

相关文章:

  • MybatisPlus整合p6spy组件SQL分析
  • 项目实战 — 博客系统③ {功能实现}
  • 卷积神经网络全解:(AlexNet/VGG/ GoogLeNet/LeNet/ResNet/卷积/激活/池化/全连接)、现代卷积神经网络、经典卷积神经网络
  • WDM 模型(Windows Driver Model)简述
  • 【算法刷题之数组篇(1)】
  • 【数据挖掘】使用 Python 分析公共数据【01/10】
  • html怎么插入视频?视频如何插入页面
  • 游戏服务端性能测试
  • 【使用Zookeeper当作注册中心】自己定制负载均衡常见策略
  • 设计模式十七:迭代器模式(Iterator Pattern)
  • Python制作爱心并打包成手机端可执行文件
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置
  • 管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——支持加强——第三节——分类3——类比题干支持
  • 搜索旋转排序数组
  • Steam搬砖项目:最长久稳定的副业!
  • 最小化安装移动云大云操作系统--BCLinux-R8-U8-Server-x86_64-230802版
  • 神经网络基础-神经网络补充概念-05-导数
  • kubernetes — 安装Ingress
  • SSR使用HTTPS
  • Spring Boot中使用validator如何实现接口入参自动检验
  • thinkphp 5 实现UNION ALL 3个联表查询,并且带上搜索条件,名称,时间,手机号
  • React 之 Router - 路由详解
  • 框架分析(1)-IT人必须会
  • 前端面试的游览器部分(7)每天10个小知识点
  • 认识Junit
  • Unity C# 引用池 ReferencePool
  • opencv 进阶10-人脸识别原理说明及示例-cv2.CascadeClassifier.detectMultiScale()
  • 〔013〕Stable Diffusion 之 图片自动评分和不健康内容过滤器 篇
  • 6.RocketMQ之消费索引文件ConsumeQueue
  • Appium-移动端自动测试框架,如何入门?