下面的算法找到所有可能的方法来改变一个特定的总和真的使用记忆吗?
func count( n, m )
for i from 0 to n
for j from 0 to m
if i equals 0
table[i,j] = 1
else if j equals 0
table [i,j] = 0
else if S_j greater than i
table[ i, j ] = table[ i, j - 1 ]
else
table[ i, j ] = table[ i - S_j, j ] + table[ i, j - 1 ]
return table[ n, m ]
每次调用函数 count 时,它都会从头开始填充表。即使表已经针对某些值进行了初始化,下次调用 count 时,它也不会使用这些值,而是从 i = 0 和 j = 0 重新开始。