动态规划——不相邻的最大子数组和(C语言)

推荐B站视频     https://www.bilibili.com/video/av18512769?from=search&seid=10560517650951849115

动态规划——不相邻的最大子数组和(C语言)

动态规划——不相邻的最大子数组和(C语言)

int max(int a,int b)
{
	return a>b?a:b;
}
void fun(int arr[],int n)
{
	int *dp=(int*)malloc(sizeof(int)*n);
	memset(dp,0,sizeof(dp)*n);
	dp[0]=arr[0];
	dp[1]=max(arr[0],arr[1]);
	for(int i=2;i<n;i++)
		dp[i]=max(dp[i-2]+arr[i],dp[i-1]);

	printf("%d\n",dp[n-1]);

}
int main()
{
	int arr[]={1,2,4,1,7,8,3};
	fun(arr,7);
	system("pause");
	return 0;
}