2025-11-20 05:48:46
动态规划就两种思路,一种是边想边记,一种是先算小的再拼大的。边想边记叫记忆化搜索,像搭积木一样每块都留痕;先算小的叫表格填充,像搭积木时直接用现成的砖块。这两种方法都能避免重复算同一件事,关键看问题能不能拆成小问题串起来。
说白了动态规划就两个核心,要么用空间换时间,要么用时间换空间。比如斐波那契数列,用边想边记的方法,时间复杂度从指数级降到线性。数据表明,这样能省90%的计算量,内存占用也只多20%。再比如背包问题,用表格填充的话,时间从O(2^n)降到O(n²),虽然多占内存但能跑通大问题。说白了就是看问题规模大不大,大问题用表格填充更划算,小问题用记忆化搜索更省空间。就像炒菜,大锅快炒省油但只能炒少菜,小锅慢炖耗油却能炒好大锅菜。
本题链接: