dp(0,sum(array))=dp(1,sum(array)-a[0])+dp(1,sum(array))=....
dp1=2 4 8 16...類似二元樹
我使用stack解題
如果dp(idx,now) idx超出範圍 則判斷目前數值是否為大於最優解的最小值
如果找到大於最優解 減了目前索引的值會小於最優解 則判斷目前數值是否為大於最優解的最小值 並且不把dp(idx+1,now-a[i])加入stack
如果找到等於最優解 直接印出最低需求並break
提醒:
m為你有的櫃子 不是借出的所有櫃子總和
不會像範例測資一樣借出總和跟m一樣