343. 整数拆分 - 力扣(LeetCode)
动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili
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++)//这里进行了减枝,具体知识为不等式a+b>=2*根号ab,当且a=b取得极值{dp[i]=max(dp[i],max(j*(i-j),j*dp[i-j]));}return dp[n];}
};
96. 不同的二叉搜索树 - 力扣(LeetCode)
动态规划找到子状态之间的关系很重要!| LeetCode:96.不同的二叉搜索树_哔哩哔哩_bilibili
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];}
};
我们在求递推公式的时候(无头绪时)可以自己先手动模拟一下1、2、3的规律·