希望这篇题解对你有用,麻烦动动手指点点关注或者赞,感谢您的关注!
类似题目:数字三角形
分为两种情况来讨论:
一种是往南走到f[i][j];
即f[i][j]=f[i-1][j]+w[i][j];
一种是往东走到f[i][j];
即f[i][j]=f[i][j-1]+w[i][j];
两者取一个MAX即可
ACcode
import java.util.*;
public class Main{
static int N=110;
static int f[][]=new int[N][N];
static int w[][]=new int[1010][1010];
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();
while(T-->0){
int n=sc.nextInt();
int m=sc.nextInt();
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
w[i][j]=sc.nextInt();
f[i][j]=Math.max(f[i-1][j]+w[i][j],f[i][j-1]+w[i][j]);
}
}
System.out.println(f[n][m]);
}
}
}