随笔分类 -  算法 / 动态规划

摘要:由小至大推导公式,从2段开始一直到n段 int cuttingRope(int n) { //dp[i-j]*j 分为多段 //i-j *j 分为俩端 int dp[n+1]; memset(dp,0,sizeof(dp)); dp[2]=1; for(int i=3;i<=n;i++){ cout 阅读全文
posted @ 2022-10-04 19:21 lwx_R 阅读(19) 评论(0) 推荐(0) 编辑
摘要:int longestCommonSubsequence(string text1, string text2) { //dp[i][j]记录text1前i序列和text2前j序列的最长公共序列 int dp[1005][1005]; memset(dp,0,sizeof(dp)); for(int 阅读全文
posted @ 2022-09-21 13:51 lwx_R 阅读(10) 评论(0) 推荐(0) 编辑
摘要:int lengthOfLIS(vector<int>& nums) { int len=nums.size(); int dp[len]; int list[len];//记录序列下标 vector<int> v; for(int i=0;i<len;i++){ dp[i]=1; list[i]= 阅读全文
posted @ 2022-09-21 13:25 lwx_R 阅读(16) 评论(0) 推荐(0) 编辑
摘要:/* 偷窃第 k间房屋,那么就不能偷窃第 k-1 间房屋,偷窃总金额为前 k-2 间房屋的最高总金额与第 k 间房屋的金额之和。 不偷窃第 k 间房屋,偷窃总金额为前 k-1 间房屋的最高总金额。 */ int rob(vector<int>& nums) { int dp[105]; int le 阅读全文
posted @ 2022-09-15 13:02 lwx_R 阅读(11) 评论(0) 推荐(0) 编辑
摘要:int minimumTotal(vector<vector<int>>& triangle) { int n=triangle.size(); int m=n; int dp[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<i+1;j++){ if(i==0) 阅读全文
posted @ 2022-09-15 13:01 lwx_R 阅读(121) 评论(0) 推荐(0) 编辑
摘要:1.线性DP 1.1 数字递推 给定一个线性序列如数组,按某种条件求最优解 由小至大依次递推公式得回归方程 例题 LC120 题目 LC198 题目 1.2 最长上升子序列LIS 给定数组求它单调递增的序列最长度 例题 LC300 题目 1.3 最长公共子序列 例题 LC1143 题目 阅读全文
posted @ 2022-09-15 13:01 lwx_R 阅读(14) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示