Problem
本题操作一维和二维数组。在 (a) 部分中,您将编写一个方法来反转一维数组的元素。在 (b) 和 (c) 部分中,您将编写方法来反转二维数组的元素。
(a) 考虑以下不完整的 ArrayUtil 类,它包含一个静态 reverseArray 方法。
编写 ArrayUtil 方法 reverseArray。例如,如果 arr 是数组 {2,7,5,1,0},则对 reverseArray 的调用会将 arr 更改为 {0,1,5,7,2}。下面完成方法 reverseArray。
/** 反转数组arr的元素。
* 前提条件:arr.length > 0.
* 后置条件:arr 的元素已被反转。
* @param arr 要操作的数组
*/
公共 静态 void reverseArray(int[] arr)
b) 考虑下面的不完全 Matrix 类,它表示一个二维整数矩阵。假设矩阵包含至少一个整数。
编写 Matrix 方法 reverseAllRows。此方法反转每一行的元素。例如,如果 mat1 引用 Matrix 对象,则调用 mat1.reverseAllRows() 将更改矩阵,如下所示。
在编写reverseAllRows时,必须调用part(a)中的reverseArray方法。假设无论您在 (a) 部分中写了什么,reverseArray 都能正常工作。下面完成方法 reverseAllRows。
/** 反转每行 mat 中的元素。
* 后置条件:每行中的元素已被反转。
*/
公共 void reverseAllRows()
c) 编写 Matrix 方法 reverseMatrix。此方法反转矩阵的元素,使得矩阵的最终元素在以行优先顺序读取时与从底角从右到左向上读取时的原始元素相同。再次让 mat1 成为对 Matrix 对象的引用。调用 mat1.reverseMatrix() 将改变矩阵,如下所示。
在编写reverseMatrix时,必须调用(b)部分的reverseAllRows方法。假设无论您在 (b) 部分中写了什么,reverseAllRows 都能正常工作。下面完成方法 reverseMatrix。
/** 反转 mat 的元素。
* 后置条件:
* - mat 的最终元素,当以行优先顺序读取时,
*读取时与mat的原始元素相同
* 从底角开始,从右到左,向上。
* - mat[0][0] 包含最初是最后一个元素的内容。
* - mat[mat.length-1][mat[0].length-1] 包含原来的内容
* 最初是第一个元素。
*/
公共 void reverseMatrix()