动态规划-----算法考试

动态规划

    • 斐波那契
    • 求解整数拆分问题
    • 求解 0/1 背包问题
    • 最长公共子序列

斐波那契

#include 
#define Max_N 100
/**
 *动态规划
 * 
 *fibonacci 数列
**/ 
int memo[Max_N];  //存放斐波那契数 
using namespace std;
int fib(int n)
{
	//终结条件   n<=2时返回1 
	if(n<=2)
	return 1;
	//如果数组里面不为空 直接返回数组里面的值 ,不用在递归计算 
	if(memo[n]!=0)
	return memo[n];
	//求得一个斐波那契数的值就存放到数组里 
	return memo[n]=fib(n-1)+fib(n-2);	
} 
int main(int argc, char** argv) {
	//测试
	memset(memo,0,Max_N);//初始化动态规划数组
	cout<<fib(60);
	return 0;
}

求解整数拆分问题

后面补上

求解 0/1 背包问题

后面补上

最长公共子序列

后面补上

你可能感兴趣的:(动态规划-----算法考试)