具体情况
之前:
for(int i=2;i<=steps;i++){
for(int j=0;j<arrLen;j++){
f[i][j]=f[i-1][j];
if(j!=0)
f[i][j]+=f[i-1][j-1];
if(j!=arrLen-1)
f[i][j]+=f[i-1][j+1];
}
}
优化后:
for(int i=1;i<=steps;i++){
for(int j=0;j<arrLen;j++){
for(int k=-1;k<=1;k++){//用一个循环替代两个判断
if(j-k>=0&&j-k<arrLen){
f[i][j]=(f[i][j]+f[i-1][j-k])%mod;
}
}
}
}