// 沒有閉包
function heavyDuty(item) {
const bigArray = new Array(7000).fill('^_^') // 執行完就銷毀囉
return bigArray[item]
}
dynamic programming是divide and conquer的延伸。當遞迴分割出來的子問題(sub-problems),一而再、再而三出現,就用記憶法儲存這些問題的答案,避免重複求解,以空間換取時間。
跟greedy method相比,比較全面。greedy method只考量當下的狀況做決定。也因為比較全面,可以解決子問題,也不會重工。
當一個大問題能被分解成小問題,而小問題再分解下去的小問題有重複的情況時,表示這個問題有重疊子問題(Overlapping Subproblem)。例如:費氏數列。
dynamic programming是divide and conquer的延伸。當遞迴分割出來的子問題(sub-problems),一而再、再而三出現,就用記憶法儲存這些問題的答案,避免重複求解,以空間換取時間。
跟greedy method相比,比較全面。greedy method只考量當下的狀況做決定。也因為比較全面,可以解決子問題,也不會重工。
當一個大問題能被分解成小問題,而小問題再分解下去的小問題有重複的情況時,表示這個問題有重疊子問題(Overlapping Subproblem)。例如:費氏數列。
dynamic programming是divide and conquer的延伸。當遞迴分割出來的子問題(sub-problems),一而再、再而三出現,就用記憶法儲存這些問題的答案,避免重複求解,以空間換取時間。
跟greedy method相比,比較全面。greedy method只考量當下的狀況做決定。也因為比較全面,可以解決子問題,也不會重工。
當一個大問題能被分解成小問題,而小問題再分解下去的小問題有重複的情況時,表示這個問題有重疊子問題(Overlapping Subproblem)。例如:費氏數列。