复试训练——常用技巧——滚动数组
2017-02-12 00:00
204 查看
假设现在有如下的状态转移方程:
按照转移方程我们可以使用二维数组保存其状态值,如下代码所示:
考虑到每次状态转移仅与上一行有关,可以将二维变成一维数组保存。如下:
dp[i][j]=max(dp[i-1][j+1],dp[i-1][j-1]);
按照转移方程我们可以使用二维数组保存其状态值,如下代码所示:
for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ dp[i][j]=max(dp[j-1][j+1],dp[i-1][j-1]); } } int ans=dp [m];
考虑到每次状态转移仅与上一行有关,可以将二维变成一维数组保存。如下:
for(int i=1;i<=n;i++){ for(j=1;j<=m;j++){ buf[j]=max(dp[j+1],dp[j-1]); } for(j=1;j<=m;j++){ dp[j]=buf[j] } } int ans=dp[m];
相关文章推荐
- 复试训练——常用技巧——补充技巧
- 复试训练——常用技巧——标准模版库
- 复试训练——常用技巧——调试技巧
- shell脚本中数组array常用技巧学习实践
- ScrollView类下面的HorizontalScrollView常用技巧(滚动)
- @shell脚本中数组array常用技巧学习实践@
- JavaScript数组常用操作技巧汇总
- 01背包问题(当有的背包重量是非整数时)的递归(优化成动态规划+再用滚动数组优化)解法+一些动态规划(递归,搜索)的高级技巧
- 【(好题)组合数+Lucas定理+公式递推(lowbit+滚动数组)+打表找规律】2017多校训练七 HDU 6129 Just do it
- JAVA 数组常用技巧
- 【Algothrim】 算法技巧 -- 滚动数组
- Java基础与案例开发详解の数组及常用技巧
- 常用技巧之JS判断数组中某元素出现次数
- shell脚本中数组array常用技巧学习实践
- JavaScript数组常用操作技巧汇总
- 寒假训练报告2.9(常用技巧)
- 寒假填空训练一1010删字母(滚动数组或replace(进行string的删除)),学习一下string的replace以及string的相加
- 常用图片处理技巧
- Java数据库编程中的几个常用技巧
- 常用的查看数据库的SQL Oracle经验技巧集