题解 | 数字三角形
数字三角形
https://www.nowcoder.com/practice/c0848016f7024077ab12c75081972402
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
int num[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
cin >> num[i][j];
}
}
for (int i = 1; i < n; i++) {
for (int j = 0; j <= i; j++) {
if(j==0){
num[i][j]+=num[i-1][j];
}else if(j==i){
num[i][j]+=num[i-1][i-1];
}else{
num[i][j]+=max(num[i-1][j-1], num[i-1][j]);
}
}
}
int ans=0;
for (int j = 0; j <= n-1; j++) {
if(num[n-1][j]>ans)ans=num[n-1][j];
}
cout<<ans<<endl;
}
// 64 位输出请用 printf("%lld")
查看9道真题和解析