package 蓝桥.upALgo;
import java.util.Scanner;
public class H1006 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int [][] gold = new int [n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
gold[i][j] = scanner.nextInt();//获取金币值
}
}
//对于n*n的二维数组,我们可以先对第一行和第一列进行赋初值
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i==0&&j!=0){gold[i][j] = gold[i][j-1]+gold[i][j];}//赋行初值,也就是一直向右走的初值
if (j==0&&i!=0){gold[i][j] = gold[i-1][j]+gold[i][j];}//赋列初值,也就是一直向下走的初值
else if(i>0&&j>0) {gold[i][j] = Math.max(gold[i-1][j]+gold[i][j],gold[i][j-1]+gold[i][j]);}//赋中间值,因为中间值我们需要取向下或向右的两种情况的最大值
}
}
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < n; j++) {
System.out.println(gold[n-1][n-1]);
// }
// }
}
}
蓝桥杯试题 算法训练 拿金币
最新推荐文章于 2023-04-06 14:32:34 发布