1
以下算法是否找到了對特定金額進行更改的所有可能方法,是否真的使用記憶?硬幣更改記憶
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 ]
每次函數計數被調用時,它都會從頭開始填充表。即使表已被初始化爲某些值,下一次計數被調用,它將不會使用這些值,但會從i = 0和j = 0再次開始。
謝謝,就像我懷疑的一樣。我發現這個算法的文章聲稱它使用了momoization。 –