动态规划
将原问题拆解成若干子问题,同时保存子问题的答案,使得每个子问题只求解一次,最终
得到原问题的答案。
本质:
递归问题–>重叠子问题:记忆化搜索 (自顶向下) 动态规划(自底向上)
int fib(int n)
{
//动态规划
vector<int>memo;
memo=vector<int>(n+1,-1);
//vector<int>memo(n+1,-1);
memo[0]=0;memo[1]=1;
for(int i=2;i<n=n;i++)
{
memo[i]=memo[i-1]+memo[i-2];
}
return memo[n];
}