题解 | #牧场重组计划# java
牧场重组计划
https://www.nowcoder.com/practice/d62fe08f920249f5a078d49a60e31444
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param matrix int整型二维数组 * @return int整型二维数组 */ public int[][] rotatePastureCounterClockwise (int[][] matrix) { // write code here int n = matrix.length; int m = matrix[0].length; // 对每一行进行反转 for (int i = 0; i < n; i++) { reverse(matrix[i]); } // 进行转置操作 for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } return matrix; } private void reverse(int[] array) { int left = 0; int right = array.length - 1; while (left < right) { int temp = array[left]; array[left] = array[right]; array[right] = temp; left++; right--; } } }
Java代码
该题主要考察的知识点有:
- 二维数组
- 数组反转
- 数组转置
代码的文字解释:
- 获取二维数组的行数
n
和列数m
。 - 对二维数组的每一行进行反转操作,使用
reverse
方法实现。 - 对二维数组进行转置操作,即将第
i
行和第i
列的元素互换位置。 - 返回旋转后的二维数组。