- 博客(4)
- 收藏
- 关注
原创 动态规划之最长递增子序列
LIS(longest Increasing Subsequence)最长递增子序列问题解法有穷举法(O(n*2^n))、动态规划(O(N^2))。
2021-11-28 11:21:32
130
原创 动态规划之矩阵连乘问题
矩阵连乘问题解法有穷举法、动态规划法和备忘录法。矩阵连乘问题要解决最优相乘次序问题和构造最优解。 备忘录法和动态规划都使用一个数组m[i][j]来存储第i到j矩阵相乘的最少相乘次数,动态规划中r表示链长,r为1时候m为0,所以从2到n,r-1=j-i;s[i][j]用于构造最优解,记下每一个斜线的最少相乘次数的位置,k是i到j的最优划分位置的变量。这里以ACM-矩阵连乘动态规划求最优值和ACM-矩阵连乘备忘录求最优值为例。//备忘录#...
2021-11-25 15:09:51
444
原创 动态规划之最大子段和
最大子段和是指在一串有正负整数的数中找到和最大的子段。最大子段的解法有三种,穷举法O(n^3)/O(n^2),分治法,动态规划法O(n)如下。在最大子段和问题中要解决最大子段和的值和最大子段两个关键点。 这里以ACM-最大子段和升级版为例进行记录。函数 slove 用于填当前最大子段和值数组b[]并且记下最大子段的起始位置begin、end。求出end后递减,子段和减到0之后,记下当前的指针即为begin。void solve(){...
2021-11-24 20:49:26
1294
原创 动态规划之数字三角形备忘录解法
数字三角形有两大类解法,这里记录经典递归也就是暴力解法中的备忘录法,即考虑子问题重复并记录公共子问题的解。这里以ACM-数字三角形之备忘录法为例进行记录。函数一:求最大值函数 简单的三目运算求两个数的最大值。int max(int a,int b){ return a>b?a:b;}函数二:递归函数求最大路径和int solve(int i,int j,int n){ if(i>n) return 0; if(p[i][...
2021-11-04 16:39:23
428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人