滚动数组
-
适用情况:数组长度很大,结果需要中间量推导但不需要保存过程量,过程中仅用到前n项
-
优点:可以优化空间,减少内存占用(毕竟数组开得很小)
-
主要应用于递推与动态规划中
-
写法
//斐波那契数列 int main(){ int i; long long d[3]; d[1]=1; d[2]=1; for(i = 2;i<80;i++){ d[0] = d[1]; d[1] = d[2]; d[2] = d[0]+d[1]; } //[0,1,1] //[1,1,2] //[1,2,3] //[2,3,5] //…… //由于求斐波那契数列第n项只需要求第n-1项与第n-2的和 //所以可以利用循环数组来压缩空间 //易知d[2]即为第i项的值 printf("%lld\n",d[2]); return 0; }