寒假每日一题打卡day22——ACWing126. 最大的和
【题目描述】
import java.util.Scanner; class Main{ static int N = 110; public static void main(String args[]){ Scanner reader = new Scanner(System.in); int n = reader.nextInt(); int[][] f = new int[N][N]; for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) { //同一列的前缀和 f[i][j] = reader.nextInt(); f[i][j] += f[i - 1][j]; } int ans = Integer.MIN_VALUE; for(int i = 1; i <= n; i ++){ //枚举上边界 for(int j = i; j <= n; j++){ //枚举下边界 int last = 0; for(int k = 1; k <=n; k ++){ last = Math.max(last,0) + f[j][k] - f[i - 1][k]; ans = Math.max(ans,last); } } } System.out.println(ans); } }