滚动数组算法 --- DP思想(动态规划)
来源:互联网 发布:mac 人民币符号 编辑:程序博客网 时间:2024/05/16 12:06
以下是自己对于滚动数组的自己理解,有错误的地方各位可以提出来。
滚动数组是DP中的其中一个简单的算法,更确切的说是一种编程思想。
简单的理解就是让数组滚动起来,每次都使用固定的几个存储空间,来达到压缩,节省存储空间的作用。
具体可以优化DP或者递推中的空间,在数据量很大的时候起到压缩的作用。
Example:
求斐波拉切数列,先用正常的方法求解。
int d[]=new int[100];d[0]=1;d[1]=1;for(int i=2;i<100;i++){d[i]=d[i-1]+d[i-2]}System.out.printf("%d",d[99]);
此处可以看到这里,如果求解99位,那么需要使用将近快100个存储单元。
接下来使用滚动数组的思想:
int d[]=new int[3];d[0]=1;d[1]=1;for(int i=2;i<100;i++){d[i%3]=d[(i-1)%3]+d[(i-2)%3];}System.out.printf("%d",d[99%3]);
这里无论求多少个,只需要留出三个存储单元的位置即可。
这样在使用的时候就可以降低开销,对于某些固定的问题就可以很容易的解决掉。
在时间上没有什么优化,有些甚至是牺牲时间换空间的道理。所以使用的时候,选择适合的比较重要。
0 0
- 滚动数组算法 --- DP思想(动态规划)
- 【算法之动态规划(五)】DP规划思想学习:从《算法导论》到《算法设计》
- 动态规划算法思想
- 动态规划(DP)算法
- 动态规划(DP)算法
- 动态规划(DP算法)
- 动态规划(DP)算法
- POJ 3624 Charm Bracelet(DP动态规划+滚动数组)
- DP动态规划思想讲解
- 1119. Metro(动态规划,滚动数组)
- 常用算法思想二(动态规划)
- 动态规划(DP)算法
- DP动态规划算法
- 动态规划入门(四)DP 基本思想与实现
- 动态规划入门(一) DP 基本思想
- 动态规划(DP)算法及其应用
- 动态规划(DP)算法的介绍
- 算法之动态规划(DP)
- vector,map,list,queue的区别详细解析
- TCP/UDP Socket编程步骤
- Fixing the Great Wall
- Spring MVC 学习笔记 十三 xml格式输入输出
- struct和class
- 滚动数组算法 --- DP思想(动态规划)
- Java工程师成神之路~
- 浅析CSRF
- hibernate中的一级缓存及常见面试题解析
- 网络请求框架
- atitit.农历的公式与原理以及农历日期运算
- i.MX6q SABRE Board for Smart Devices
- Spring MVC 学习笔记 十四 对locale和theme的支持
- 【NOI2014】动物园