用斐波那契数列来解释一下滚动数组
一般我们会这样写:
fib[0]=0;
fib[1]=1;
for(int i=2;i<10000;i++)
{
fib[i]=fib[i-1]+fib[i-2];
如果你只需要最后一项或几项的话,前面的数据都没用了,浪费了很多空间,滚动数组正是用来优化空间的
写成滚动数组之后:
fib[0]=0;
fib[1]=1;
for(int i=2;i<10000;i++)
{
fib[i%3]=fib[(i-1)%3]+fib[(i-2)%3];
}
这样就只用到了fib[0] fib[1] fib[3] 这三个的内存,是不是十分的高效呢?