Matrix Row Range Calculator
題目說明
請完成一個程式,計算矩陣中每一橫列(row)最大值與最小值的差值。給定一個 n × m 的矩陣,其中 n 代表橫列數,m 代表直行數,請計算每一橫列的最大值與最小值之間的差值,並依序輸出這些差值。
例如,若有一個 3 × 4 的矩陣如下:
5 3 8 1
2 5 6 4
9 1 7 3
則第一個橫列的最大值為 8,最小值為 1,差值為 7; 第二個橫列的最大值為 6,最小值為 2,差值為 4; 第三個橫列的最大值為 9,最小值為 1,差值為 8。 因此,輸出應為:7 4 8
請注意,除了實作 calculateRowRange
和calculateMatrixRowRanges
方法外,請勿修改程式中其他已經寫好的部分,違反此規則者,無論自動評測結果為何,在考試中均不計分。允許輕微的排版差異。
程式模板
import java.util.Scanner;
public class MatrixRowRange {
/**
* 這個方法是計算單一橫列的最大值與最小值的差值
* row 是包含整數的一維陣列,代表矩陣的一個橫列
* return 該橫列之中,最大值與最小值的差值
*/
public static int calculateRowRange(int[] row) {
// 請實作calculateRowRange方法
}
/**
* 這個方法是計算矩陣中每一橫列的最大值與最小值的差值
* matrix 是二維整數陣列,代表輸入的矩陣
* return 包含每一橫列差值的一維整數陣列
*/
public static int[] calculateMatrixRowRanges(int[][] matrix) {
// 請實作calculateMatrixRowRanges方法
}
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];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] = scanner.nextInt();
}
}
// 計算每一橫列的差值
int[] rowRanges = calculateMatrixRowRanges(matrix);
// 輸出結果
for (int i = 0; i < rowRanges.length; i++) {
System.out.print(rowRanges[i]);
if (i < rowRanges.length - 1) {
System.out.print(" ");
}
}
scanner.close();
}
}
輸入值的格式
首先,用兩個整數 n 和 m,分別代表矩陣的橫列數量和直行數量,以空格分隔。 接下來,用 n 組 m 個整數,以空格分隔,代表矩陣的元素。
輸出值的格式
用 n 個整數,代表每一橫列最大值與最小值的差值,以空格分隔。
邊界條件提示
- 1 ≤ n, m ≤ 100
- -1000 ≤ 矩陣中的元素 ≤ 1000
範例輸入 #1
3 4
5 3 8 1
2 5 6 4
9 1 7 3
範例輸出 #1
7 4 8
說明:如題目說明所述,第一個橫列的差值為 8-1=7,第二個橫列的差值為 6-2=4,第三個橫列的差值為 9-1=8。
Comments