首页 > 其他分享 >Study Plan For Algorithms - Part48

Study Plan For Algorithms - Part48

时间:2024-10-01 22:11:35浏览次数:10  
标签:return Study trees current Algorithms Plan end self dp

1. 不同的二叉搜索树 II
给定一个整数 n ,请生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。

class Solution:
    def generateTrees(self, n: int) -> List[Optional[TreeNode]]:
        if n == 0:
            return []
        return self.generateTreesHelper(1, n)

    def generateTreesHelper(self, start, end):
        if start > end:
            return [None]
        all_trees = []
        for i in range(start, end + 1):
            left_trees = self.generateTreesHelper(start, i - 1)
            right_trees = self.generateTreesHelper(i + 1, end)
            for l in left_trees:
                for r in right_trees:
                    current_tree = TreeNode(i)
                    current_tree.left = l
                    current_tree.right = r
                    all_trees.append(current_tree)
        return all_trees        

2. 不同的二叉搜索树
给定一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?

class Solution:
    def numTrees(self, n: int) -> int:
        dp = [0] * (n + 1)
        dp[0] = dp[1] = 1
        for i in range(2, n + 1):
            for j in range(1, i + 1):
                dp[i] += dp[j - 1] * dp[i - j]
        return dp[n]

标签:return,Study,trees,current,Algorithms,Plan,end,self,dp
From: https://www.cnblogs.com/stephenxiong001/p/18444195

相关文章

  • 怎么搭建Plane
    Github地址https://github.com/makeplane/plane环境查看系统环境#cat/etc/redhat-releaseCentOSStreamrelease9#uname-aLinuxCentOSStream9Zabbix2035.14.0-391.el9.x86_64#1SMPPREEMPT_DYNAMICTueNov2820:35:49UTC2023x86_64x86_64x86_64GNU/Lin......
  • Study Plan For Algorithms - Part47
    1.复原IP地址有效IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。给定一个只包含数字的字符串s,用以表示一个IP地址,返回所有可能的有效IP地址,这些地址可以通过在s中插入'.'来形成。classSolution:defrestoreI......
  • PlantSimulation的socket交互之TCP
    PlantSimulation的socket交互之TCP 1.python的socketTCP客户端建立其实可以任选python或plantsimulation作为客户端,博主因研究需要,将python设为客户端。plant设为服务器。1"""2CreatedonSatDecember1421:00:0020213@author:ZhangLitong-NanjingUniversity......
  • P3038 [USACO11DEC] Grass Planting G
    题意思路我们可以使用树链剖分,将每条边的边权下放,将其当作点权处理,每次操作都要忽略lca那个点,因为它所对应的点并不在路径上。代码#include<bits/stdc++.h>usingnamespacestd;constintN=100010;structedge{intto,next;}e[N*2];inthead[N],i......
  • Study Plan For Algorithms - Part41
    1.搜索旋转排序数组II已知存在一个按非降序排列的整数数组nums,数组中的值不必互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标从0开......
  • Study Plan For Algorithms - Part42
    1.删除排序链表中的重复元素给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回已排序的链表。classSolution:defdeleteDuplicates(self,head:Optional[ListNode])->Optional[ListNode]:ifnothead:returnhe......
  • Business Analytics Case Study
    BusinessAnalyticsCaseStudyCaseDescriptionThefinalbusinessanalyticscasestudyhas two components: a) data transformation with SSIS and b) predictive analysiswithRapidMiner.Bothtasksarebasedonindividualflight experiences from......
  • Redis_study_01
    Redis十大基本数据类型总览:数据类型是指value的数据类型,key的数据类型固定为StringRedis命令不区分大小写,但是key区分大小写,因为key是唯一的都是一些命令,不懂的直接在官网上搜,里面的参数都有解释https://redis.io/docs/latest/commands例如String里面的setSETke......
  • Fall 2024 IE 360 Facilities Planning and Design
    Fall2024IE360FacilitiesPlanningandDesign  Homework1Name: Clickortapheretoentertext.        StudentID:Clickortapheretoentertext. Question1:(60pts)Anautomobileenginecylindermanufacturingcompanyplanstoman......
  • contemplate、consider、study和weigh的区别
    contemplate、consider、study和weigh都表示经过思考而做出决定的意思。他们的区别在于:contemplate强调思考的过程本身。consider强调思考后做出的决定。study强调决定是通过严谨的研究的。weigh强调决定时在几个选项中进行了权衡。 具体的例子: herefusedeventocon......