zoukankan      html  css  js  c++  java
  • LeetCode 面试题 01.07. 旋转矩阵

    题目

    给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,

    将图像旋转 90 度。不占用额外内存空间能否做到?

    示例

    给定 矩阵
    [
      [1,2,3],
      [4,5,6],
      [7,8,9]
    ],
    
    原地旋转输入矩阵,使其变为:
    [
      [7,4,1],
      [8,5,2],
      [9,6,3]
    ]
    
    

    思路:先将其写斜对角线翻折,再对每行以中点为中心翻折

      [1,2,3],        [1,4,7],            [7,4,1],
      [4,5,6],  ===>  [2,5,8],    ===>    [8,5,2],
      [7,8,9]         [3,6,9]             [9,6,3]
    

    代码

    public void rotate(int[][] matrix) {
            for(int i=0; i<matrix.length; i++){
                for(int j=i+1; j<matrix[0].length; j++){
                    int t = matrix[i][j];
                    matrix[i][j] = matrix[j][i];
                    matrix[j][i] = t;
                }
            }
    
            int n = matrix.length;
            int mid = n/2;
            for(int i=0; i<matrix.length; i++){
                for(int j=0; j<mid; j++){
                    int t = matrix[i][j];
                    matrix[i][j] = matrix[i][n-j-1];
                    matrix[i][n-j-1] = t;
                }
            }
        }
    

    大家如果感兴趣可以前去手搓

    本分类只用作个人记录,大佬轻喷.

  • 相关阅读:
    转:SkipList跳表
    git操作
    JAVA小工具打包
    Java数字证书操作
    mysql创建数据库和用户
    解决node-sass安装不了的问题
    vscode + angular
    ng2 quickstart-primeng
    ng2 quickstart
    使用淘宝的npm代理下载模块
  • 原文地址:https://www.cnblogs.com/xiaofff/p/12653434.html
Copyright © 2011-2022 走看看