本文共 730 字,大约阅读时间需要 2 分钟。
为了将给定的n×n矩阵顺时针旋转90度,我们直接在输入矩阵上进行修改,而不使用额外的矩阵。通过遍历每个元素并计算其旋转后的新位置,我们可以实现旋转操作。
顺时针旋转90度的变换可以通过以下方式计算每个元素的新位置:
j。n - 1 - i,其中i为原行索引。我们遍历原矩阵的每个元素,使用上述公式计算其旋转后的新位置,并将该元素赋值给原矩阵中对应的新位置。
public class Solution { public void rotate(int[][] matrix) { int n = matrix.length; if (n == 0) return; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int newRow = j; int newCol = n - 1 - i; matrix[newRow][newCol] = matrix[i][j]; } } }} n。这种方法的时间复杂度为O(n²),空间复杂度为O(1),因为我们直接在原矩阵上进行修改,而没有使用额外的数据结构。
转载地址:http://yhbn.baihongyu.com/