数字三角形 数字金字塔 递推 动态规划 空间优化

#include
using namespace std;
# define MAX 1010
int D[MAX][MAX];
int n;
int *maxSum;
int main(){
     
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=i;j++)
			cin>>D[i][j];
	maxSum=D[n];
	for(int i=n-1;i>=1;i--)
		for(int j=1;j<=i;j++){
     
			maxSum[j]=max(maxSum[j],maxSum[j+1])+D[i][j];
		}
	cout<<maxSum[1]<<endl;
	return 0;
	
			
}

你可能感兴趣的:(c语言基础知识,动态规划,递推,算法,动态规划)