目录
343 整数拆分
96 不同的二叉搜索树
343 整数拆分
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 / 2; j++){dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j));}cout << "dp[" << i << "] = " << dp[i] << endl;}return dp[n];}
};
96 不同的二叉搜索树
class Solution {
public:int numTrees(int n) {//1 第 i 个数有dp[i]种不同的二叉树数量vector<int> dp(n + 1, 0);//2 初始化dp[0] = 1;dp[1] = 1;//3 数组遍历for(int i = 2; i <= n; i++){for(int j = 1; j <= i; j++){//4 递归方程dp[i] += dp[j - 1] * dp[i - j];}}return dp[n];}
};