代码随想录算法训练营第41天|343. 整数拆分 |96.不同的二叉搜索树
详细布置
今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。
343. 整数拆分
https://programmercarl.com/0343.%E6%95%B4%E6%95%B0%E6%8B%86%E5%88%86.html
视频讲解:https://www.bilibili.com/video/BV1Mg411q7YJ
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(dp[i-j]*j,(i-j)*j));return dp[n];}};
96.不同的二叉搜索树 (我不会,要多琢磨下)
https://programmercarl.com/0096.%E4%B8%8D%E5%90%8C%E7%9A%84%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91.html
视屏讲解:https://www.bilibili.com/video/BV1eK411o7QA
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];}
};```