从倒数第二列开始查找
核心代码:
a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
a[i][j] 加上他下面的两个数中的最大者……
到最后a[0][0]就是最终的最大值。
#include <iostream>
#include<algorithm>
#define maxn 100
using namespace std;
int main()
{
int a[maxn+1][maxn+1],i,j,n;
cin >>n;
for (i=1;i<=n;i++)
for (j=1;j<=i;j++)
cin >>a[i][j];
for (i=n-1;i>=1;i--)
for (j=1;j<=i;j++)
a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
cout <<a[1][1]<<endl;
return 0;
}
转载于:https://www.cnblogs.com/plxx/p/3232717.html
相关资源:数据结构—成绩单生成器