LeetCode 343.整数拆分
题目链接:
LeetCode 343.整数拆分
解题思路:
递推公式:一个数n是由1到n-1和另一个数的分解而来的,而另一个数是由更小的数分解而来的。
代码:
class Solution {
public:int integerBreak(int n) {vector<int>dp(n+1);dp[2]=1;for(int i=3;i<=n;i++){for(int j=1;j<i;j++){dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j));}}return dp[n];}
};
LeetCode 96.不同的二叉搜索树
题目链接:
LeetCode 96.不同的二叉搜索树
解题思路:
二叉搜索树的种类的递推公式为左子树的种类*右子树的种类的和。
代码:
class Solution {
public:int numTrees(int n) {vector<int>dp(n+1);dp[0]=1;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){dp[i] += dp[j-1]*dp[i-j];}}return dp[n];}
};