Matrix Row Range Calculator


Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

題目說明

請完成一個程式,計算矩陣中每一橫列(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

請注意,除了實作 calculateRowRangecalculateMatrixRowRanges方法外,請勿修改程式中其他已經寫好的部分,違反此規則者,無論自動評測結果為何,在考試中均不計分。允許輕微的排版差異。

程式模板

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

There are no comments at the moment.