343. 整数拆分
class Solution {
public:int integerBreak(int n) {vector<int> dp(n+1, 0);dp[2] = 1;for(int i=3; i<n+1; i++){for(int j= 1; j<=i/2; j++){dp[i] = max(dp[i], max(j*(i-j), j*dp[i-j]));}}return dp[n];}
};
参考文章:代码随想录-343. 整数拆分
96.不同的二叉搜索树
class Solution {
public:int numTrees(int n) {vector<int> dp(n+1, 0);dp[0] =1;dp[1] =1;for(int i=2; i<=n; i++){for(int j=1; j<=i; j++){dp[i] += dp[j-1]*dp[i-j];}}return dp[n];}
};
参考文章:代码随想录- 96.不同的二叉搜索树