推荐B站视频 https://www.bilibili.com/video/av18512769?from=search&seid=10560517650951849115
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;
}