网页设计与网站建设作业怎么做,超级工程网站建设,wordpress js无效,discuz企业网站模板343 整数拆分
给定一个正整数 n #xff0c;将其拆分为 k 个 正整数 的和#xff08; k 2 #xff09;#xff0c;并使这些整数的乘积最大化。
返回 你可以获得的最大乘积
# 动态规划
def integerBreak(n:int)-int:dp[0]*(n1)dp[2]1 #从下标为2开始 #xff0…343 整数拆分
给定一个正整数 n 将其拆分为 k 个 正整数 的和 k 2 并使这些整数的乘积最大化。
返回 你可以获得的最大乘积
# 动态规划
def integerBreak(n:int)-int:dp[0]*(n1)dp[2]1 #从下标为2开始 n为1或0没有意义for i in range(3,n1):for j in range(1,i//21):[]dp[i]max(dp[i],(i-j)*j,dp[i-j]*j)# 将i拆分第一个整数j不在拆分 乘积 j*(i-j)# 将i拆分第一个整数j还要拆分 乘积 j*dp[i-j] (dp[i-j]是最大的拆分乘积数)return dp[n]# 贪心 拆分为m个3剩下是4保留4
def integerBreak(n):if n2:return 1if n3:return 2if n4:return 4result1while n4:result*3n-3result*nreturn result 96 不同的二叉搜索树
给你一个整数 n 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种返回满足题意的二叉搜索树的种数。
def numTrees(n:int)-int:dp[0]*(n1)dp[0]1for i in range(n1):for j in range(1,i1): # 表示头节点的数值dp[i](dp[j-1]*dp[i-j]) #左子树个数*右子树个数return dp[n]