不同的二叉搜索树

【不同的二叉搜索树】 不同的二叉搜索树 II 给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同二叉搜索树 。可以按 任意顺序 返回答案。 示例 1: 输入:n = 3 输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]] 示例 2: 输入:n = 1 输出:[[1]] 提示: 1 <= n <= 8 思路 二叉搜索树的特点是:右节点>根节点>左节点,所以在构造二叉 阅读详情

题目:力扣

解题思路:

可以看注释

class Solution {
    StringBuffer sb = new StringBuffer();
    List<Integer> choice = new LinkedList<>();
    public String getPermutation(int n, int k) {
        //先把所有的元素加入到选择列表中
        for(int i = 1; i <= n; i++){
            choice.add(i);
        }
        return helper(choice, k);

    }
    //choice表示选择,按大小顺序排列,k表示取第k个序列,从1开始计数
    public String helper(List<Integer> choice, int k){
        //如果选择为空,或者序列数为0,返空字符串
        if(choice.size() == 0 || k == 0){
            return "";
        }
        //以某一元素开头的序列个数,一共有n!/n个
        int nums_of_each = jie(choice.size());
        //第k个序列以第几个元素开头
        int which_one = k/nums_of_each;
        //确定第一个元素后,再确定是以某元素开头的第几个
        int order = k%nums_of_each;
        //如果取余不等于0,表示开头元素是which_one的下一个
        if(order != 0){
            which_one = which_one+1;
        }
        //如果等于0,表示是which_one开头的最后一个
        else{
            order = nums_of_each;
        }
        //加入开头元素
        sb.append(choice.get(which_one-1));
        //从选择中去除该开头元素
        choice.remove(which_one-1);
        //找第二个元素
        helper(choice, order);
        return sb.toString();
    }
    
    //每个元素开头的个数
    public int jie(int n){
        int res = 1;
        for(int i = 1; i < n; i++){
            res = res*i;
        }
        return res;
    }
}

 

麒麟OS(Kylin OS)操作系统minikube+docker安装使用及遇到的问题 一 ,安装minikube及操作工具kubectl 1,安装kubectl 使用以下命令下载最新版本: curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" 要下载指定版本(例如v1.22.0版本) ,请键入: curl -LO https://dl.k8s.io/release/v1.22.0/bin/linux/amd.. 阅读详情

相关推荐

拉普拉斯矩阵

1、预备知识 拉普拉斯矩阵定义为:L=D-W。其中,D为度矩阵,W为权重矩阵。 (1)D是对角矩阵,对角线上的元素时节点的度,即所有与该节点相关联的边的权重之和;对角线以外的元素为0。有向图的对角矩阵分为 出度矩阵 和 入度矩阵。 图1.1 无向图中的度矩阵 (2)W在无向图中是对称矩阵,在有向图中是非对称矩阵。 ...

zzhe 1万+

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

题目来源 96. 不同的二叉搜索树 题目描述 题目解析 动态规划 假设n个节点存在二叉排序树的个数是G(n),令f(i)是以i为根的二叉搜索树的个数,则有 G(n)=f(1)+f(2)+f(3)+...f(n)G(n)=f(1)+f(2)+f(3)+...f(n)G(n)=f(1)+f(2)+f(3)+...f(n) n为根节点,当i为根节点时,其左子树节点个数为[1,2,3...i-1],右子树节点个数为[i+1, i+2,... n],所以当i为根节点时,其左子树节点个数为i-1个,右子树节点为n-i

OceanStar的博客 1216

2024最新版Anaconda Navigator安装使用指南

本文简要介绍如何下载安装Anaconda Navigator最新版,以及如何使用Python内核搭载来完成应用程序开发。

jackson_lingua的博客 1万+

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

这两种问题有点相似但是是一个进阶,这里就先写第96题,然后写95题。 96 不同的二叉搜索树Ⅱ 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / /

bigsai 3932

树莓派与无人机协同实战:基于OpenCV的地标识别优化策略

本文深入探讨了基于树莓派与无人机的协同系统,重点分享了利用OpenCV优化地标识别以实现精准降落的实战策略。内容涵盖从应对复杂光照的图像预处理、鲁棒的轮廓几何过滤,到通过ROS进行稳定通信,以及实现分层控制与状态机设计,旨在提升系统在真实环境中的可靠性与性能。

y2z3a4b5c的博客 1085

【DeepSeek-R1 】分词系统架构解析

DeepSeek-R1 分词系统解析 DeepSeek-R1 采用 SentencePiece Unigram 算法,通过统计语言模型实现高效子词分词。其核心优势包括: 算法对比:相比 BPE/WordPiece,Unigram 基于概率模型,支持多语言,自动回退字符级处理。 特性优化:智能空格处理、数字分桶、多语言统一支持,并采用前缀树索引和 SIMD 并行加速,编码速度达 12,458 tok/s。

赶紧的博客 429

Java实现 LeetCode 95 不同的二叉搜索树 II(二)

95. 不同的二叉搜索树 II 给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。 示例: 输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 ...

南 墙 1万+

软考 系统架构设计师历年真题集萃(248)

软考 系统架构设计师历年真题集萃(248)

phmatthaus的专栏 789

95. 不同的二叉搜索树 II

95. 不同的二叉搜索树 II 给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。 示例: 输入:3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \

夜幕下的日蚀 411

18、基于FSDD数据集的深度学习案例分析

本文基于FSDD(Free Spoken Digit Dataset)数据集,系统介绍了深度学习在语音数字识别中的应用。内容涵盖动态与静态计算图的对比、数据预处理流程(包括数据增强、固定长度处理和归一化)、监督学习与无监督学习的模型构建与训练过程,并通过实验对比了不同网络架构的性能。文中使用PyTorch实现2层全连接网络和自编码器模型,展示了正则化技术对提升模型准确率的关键作用。最后总结了关键技术并提出了实际应用建议,展望了未来在复杂模型、多模态融合和实时应用方向的发展潜力。

vscode6remote的博客 258

智能绿植管家:基于 ESP32 的室内植物自动补光与环境调控系统

本文设计的基于 ESP32 的室内植物自动补光与生长环境调控系统,实现了植物生长环境的自动化、智能化管理。硬件选型合理、接线简单,软件逻辑清晰、易于调试,能够有效解决室内植物生长环境不适的问题。系统具备良好的实用性和扩展性,可为园艺爱好者和小型培育场所提供稳定、高效的植物养护方案。

weixin_42300449的博客 144

不同的二叉搜索树java实现

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

WukongGo的博客 610

厉害了,华为推出下一代光传送网:fgOTN

2024年10月,在全球信息技术博览会(GITEX Global 2024)上,华为正式发布了其颠覆性的创新产品——端到端细粒度光传送网(fgOTN)解决方案。这一产品组合被誉为行业内首个fgOTN,旨在重塑光传送网络的格局,满足电力运输等行业日益增长的通信需求。在过去的近三十年中,同步数字体系(SDH)技术一直是电信和工业网络的支柱,因其可靠性、稳定性和低延迟而备受青睐。然而,随着数据需求的激增,SDH的最大带宽仅为10 Gbps,逐渐显露出局限性。

网络技术联盟站 634

leetcode 96. 不同的二叉搜索树

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

Qin_酱的博客 399

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【LeetCode】不同的二叉搜索树

96. 不同的二叉搜索树 难度中等765收藏分享切换为英文关注反馈 给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ ...

Puya的博客 473

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

leetcode 96. 不同的二叉搜索树 java

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

qq_23858785的博客 578

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

96. 不同的二叉搜索树/95. 不同的二叉搜索树II

95. 不同的二叉搜索树II 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树: 正好按照顺序,左边比i小,右边比i大。 划分左右子树,递...

Gunther的博客 616

不同的二叉搜索树II

不同的二叉搜索树II 给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 输入:n = 3 输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]] ...

five_east_west的博客 611

【JAVA】不同的二叉搜索树——力扣每日一题(三)(2020.07.15)

目录题目:96. 不同的二叉搜索树前置知识二叉搜索树笛卡尔积方法一:动态规划(DP) 题目:96. 不同的二叉搜索树 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2

子浩的博客 3251

95不同的二叉搜索树II

一、前言 分类:动态规划。 问题来源LeetCode 95 难度:中等。 问题链接:https://leetcode-cn.com/problems/unique-binary-search-trees-ii/ 二、题目 给定一个整数n,生成所有由 1 ...n为节点所组成的二叉搜索树。 示例: 输入:3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null...

行走 424

不同的二叉搜索树 II

不同的二叉搜索树 II 今天做了下leetcode的题,又是喜闻乐见想不出思路,看了解答就豁然开朗。 leetcode题目链接 给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。 解题思路就是,根据二叉树的特性,如果一个数比当前节点小,那么就将数放到当前数的左节点,如果数比当前数大就放到当前节点的右节点。 而1 … n 为节点组成一个二叉搜索树。 那么当当前节点为i的时候,存在...

学习小窝 442

不同的二叉搜索树系列 【递归】

文章目录Leetcode 96. 不同的二叉搜索树问题描述解题报告实现代码Leetcode 95. 不同的二叉搜索树 II问题描述解题报告实现代码总结参考资料 Leetcode 96. 不同的二叉搜索树 问题描述 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 解题报告 完全模仿 Leetcode 95 来实现的。 实现代码 class Solution { public: int helper(int start,int end){ int ret=0;

MD 563
上一篇: 三角形最小路径和
下一篇: 复原IP地址
PMPWDF
博客等级 码龄10年 44粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值