自頂向下遞迴
自底向上
動態規劃與分治法類似自頂向下遞迴c#實現:
// 自頂向下遞迴 - 鋼條切割
class program ;
console.writeline(buyupdown(0,pprices));
console.writeline(buyupdown(5, pprices));
console.readkey();
}public
static
intbuyupdown (int n, int pprices)
int ptempmaxprice = 0;
for (int i = 1; i < n + 1; i++)
}return ptempmaxprice;
}}
缺點:效能低,效率低。
動態規劃(帶備忘)的自頂向下的實現:
對計算的結果進行儲存,避免進行二次運算,但是要付出空間帶價。
class program ;
int presult = new
int[pprices.length+1];
console.writeline(buyupdown(0, pprices, presult));
console.writeline(buyupdown(5, pprices, presult));
console.readkey();
}public
static
intbuyupdown (int n, int pprices, int presult)
if (presult[n] != 0)
int ptempmaxprice = 0;
for (int i = 1; i < n + 1; i++)
}presult[n] = ptempmaxprice;
return ptempmaxprice;
}}
自底向上:小問題依次解決大問題。
class program ;
int presult = new
int[pprices.length + 1];
console.writeline(bottomup(0,pprices,presult));
console.writeline(bottomup(1, pprices, presult));
console.readkey();
}public
static
intbottomup (int n, int pprices, int presult)
}//end for j
presult[i] = ptempmaxprices;
}//end for i
return presult[n];
}// end bottomup
}
動態規劃(四)
你是乙個專業的小偷,計畫偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第乙個房屋和最後乙個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝...
動態規劃 (四)
最近依舊是看了很多資料,然後找了很多動態規劃的感覺,但覺得動態規劃其實並不簡單,雖然看了題解,但是還是無處下手,最後只能每道題都按照模板套進去,不過這也不失為一種方法,但畢竟只是練習題,希望還是能學到動態規劃的本質,能更多地解決一些問題。可能就是由於剛開始沒有學明白,揹包問題和區間dp的那一章的題現...
演算法實驗四 動態規劃 花生公尺(四)
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述五一長假第四天,tom逛了n個bbs,做了n 2個腦筋急轉彎題,終於發現了每次吃完花生公尺嘴裡都是苦味的原因 自己總會吃到最後一粒花生公尺。五一長假第五天,tom和jerry在倉庫散步的時候發現了n堆花生公尺 這是什麼倉庫啊?這...