数据结构
fool宋
Stay Hungry , Stay Foolish
展开
-
滚动数组(2)
使用范围:使用在递推或动态规划中作用:节约空间注意:时间上没什么优势举例1)作用在一维数组:普通方法: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]);转载 2013-11-20 21:07:17 · 920 阅读 · 0 评论 -
滚动数组
滚动数组的作用在于优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。一个简单的例子:斐波那契数列:一般代码:#include#includeusing namespace转载 2013-11-20 20:58:58 · 1001 阅读 · 0 评论 -
堆和栈的区别
主要的区别由以下几点: 1、管理方式不同; 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同; 1.管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。 2.空间大小:一般来转载 2015-01-17 15:40:37 · 717 阅读 · 0 评论