leetCode 旋转图像

给定一个 × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

示例 1:


  

示例 2:

提示:

  • n == matrix.length == matrix[i].length
  • 1 <= n <= 20
  • -1000 <= matrix[i][j] <= 1000

这道题乍一看是没啥思路的,想了半天发现可以找一下旋转前后行列之间的关系,因为是旋转90度,所以旋转前的行会变成列,列会变成行,既然有了这个思路我们找规律就会更快,最后可以得出,旋转前的i行会变成旋转后的n-1-i列(n是行数),而旋转前的i列会变成旋转后的i行,这样子就明显了,接下来我们只需要创建一个中间矩阵来作为中间量给原数组赋值即可完成。代码如下:

class Solution {
    public void rotate(int[][] matrix) {
        int [][]a=new int[matrix.length][matrix[0].length];
        // 将数组 matrix 的所有值复制到数组 a
       for (int i = 0; i < matrix.length; i++) {
            System.arraycopy(matrix[i], 0, a[i], 0, matrix[i].length);
        }
        int n=matrix.length;
         for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                matrix[j][n - 1 - i] = a[i][j];
            }
        }
    }
    /**
    System.arraycopy(src, srcPos, dest, destPos, length);
    src: 源数组。这个是你要复制数据的数组。
    srcPos: 源数组的起始位置。这个是你要开始复制的源数组的索引位置。
    dest: 目标数组。这个是你要将数据复制到的数组。
    destPos: 目标数组的起始位置。这个是你要开始存放数据的目标数组的索引位置。
    length: 复制的长度。这个是要从源数组复制到目标数组的元素数量。
 */

}

相关推荐

  1. leetcode48. 旋转图像

    2024-07-19 03:44:05       37 阅读
  2. leetcode48 旋转图像

    2024-07-19 03:44:05       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 03:44:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 03:44:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 03:44:05       58 阅读
  4. Python语言-面向对象

    2024-07-19 03:44:05       69 阅读

热门阅读

  1. Jupyter Notebook: 是一个强大的交互式计算

    2024-07-19 03:44:05       26 阅读
  2. String、StringBuilder 和 StringBuffer 有什么区别?

    2024-07-19 03:44:05       25 阅读
  3. Windows图形界面(GUI)-DLG-C/C++ - 树形视图(TreeView)

    2024-07-19 03:44:05       25 阅读
  4. 正则表达式

    2024-07-19 03:44:05       23 阅读
  5. 网络同步学习(状态同步,帧同步)

    2024-07-19 03:44:05       24 阅读
  6. RNN模型

    2024-07-19 03:44:05       22 阅读
  7. 如何解决 CentOS 7 官方 yum 仓库无法使用

    2024-07-19 03:44:05       25 阅读
  8. 嵌入式linux相机 转换模块

    2024-07-19 03:44:05       23 阅读
  9. 定制 Linux 内核的意义

    2024-07-19 03:44:05       19 阅读