活学活用新思路:
题目中有一项任务是计算每行除了第一个数字的和。样例1的输入
这里运用了上一个博客中写的求最大子数组的思想,可以定义一个一维数组用来存储每行的数字。
其余思路较为简单,认真考虑即可得。
代码如下
package _19_1_小明种苹果;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int[][] matrix = new int[n][m+1];
//输入这个矩阵
for(int i = 0; i < n; i++){
for (int j = 0; j < m+1; j++) {
matrix[i][j] = scanner.nextInt();
}
}
//定义一维数组用来记录每行除第一元素以外的和
int[] suGuo = new int[n];
int max = suGuo[0];
int count = 0;
for(int i = 0; i < n; i++){
for (int j = 1; j < m+1; j++) {
//System.out.println(matrix[i][j]);
suGuo[i] += matrix[i][j];
}
suGuo[i] = -suGuo[i];
if(suGuo[i] > max){
max = suGuo[i];
count = i;
}
}
count++;
//求和
int sum = 0;
for(int i = 0 ; i < n; i++){
sum += matrix[i][0] - suGuo[i];
}
System.out.println(sum+" "+count+" "+max);
}
}