f [ i & 1 ] [ j ] = f [ ( i − 1 ) & 1 ] [ j ] + f [ i & 1 ] [ j − 1 ] f[i\&1][j]=f[(i−1)\&1][j]+f[i\&1][j−1] f[i&1][j]=f[(i−1)&1][j]+f[i&1][j−1]
f[i & 1][j] = f[(i - 1) & 1][j] + f[i & 1][j - 1];
f[2][30];//第一维大小为 2 就好
- 当i为偶数时,i&1值为0 运 算 f [ 0 ] [ j ] 运算f[0][j] 运算f[0][j]
- 当i为奇数时,i&1值为1 运 算 f [ 1 ] [ j ] 运算f[1][j] 运算f[1][j]
另一个简洁的公式 f [ i ] = f [ i ] + f [ i − 1 ] f[i]=f[i]+f[i−1] f[i]=f[i]+f[i−1]
f
[
i
−
1
]
f[i−1]
f[i−1] 就是前面方程里的
f
[
i
]
[
j
−
1
]
f
[
i
]
[
j
−
1
]
f[i][j-1]f[i][j−1]
f[i][j−1]f[i][j−1]
至于
f
[
i
]
f[i]
f[i] , 因为还没有被更新过 , 所以数据仍然保存的是当前位置上一个位置的元素 , 即
f
[
i
−
1
]
[
j
]
f[i-1][j]
f[i−1][j]