写一个动态规划的算法
递归是从上往下的计算,递归中有大量的重复计算,以斐波那契为例
动态规划是子上往下的解决问题,先解决小数据量下的结果层层类推,解决大数据规模下的问题
动态规划的思路:将原问题拆解成若干的子问题,同时保存子问题的答案,使得每个子问题只求解一次,最终获得原问题的答案。
有时候自顶向下的思考问题很容易,动态规划首先自顶向下的思考问题,然后用子底向上的实现。
public int fib(int n){
int[] memo = new int[n + 1];
Arrays.fill(memo, -1);
memo[0] = 0;
memo[1] = 1;
for(int i = 2 ; i <= n