• LeetCode 48. Rotate Image(旋转图像)


    You are given an n x n 2D matrix representing an image.

    Rotate the image by 90 degrees (clockwise).

    Follow up:
    Could you do this in-place?


    题目标签:Array

      这道题目给了我们一个n * n的矩阵,让我们旋转图片。题目要求in-place,所以就不能用额外的空间了。一开始自己写了一个很原始的方法,结果虽然通过,但是速度太慢。只好去看看别人的方法,看完觉得,自己以前数学课学的东西都还给老师了。来分析一下题目,举一个例子

    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        

    第一步,根据红色的对角线,找对应位置,互换两个数字的值。

    第二步,对每一行数字,根据中线左右翻转。

    Java Solution:

    Runtime beats 61.89% 

    完成日期:07/17/2017

    关键词:Array

    关键点:先逆矩阵再根据中线左右翻转每一行

                        

     1 public class Solution 
     2 {
     3     public void rotate(int[][] matrix) 
     4     {
     5         int n = matrix.length;
     6         
     7         // along the left top to right bottom diagonal line, swap symmetrical pair
     8         for(int i=0; i<n; i++) // for each row
     9         {
    10             for(int j=i+1; j<n; j++) // for each number
    11             {
    12                 // swap the pair
    13                 int temp = matrix[i][j];
    14                 matrix[i][j] = matrix[j][i];
    15                 matrix[j][i] = temp;
    16             }
    17         }
    18         
    19         // flip each row horizontally 
    20         for(int i=0; i<n; i++)
    21         {
    22             for(int j=0; j<n/2; j++)
    23             {
    24                 int temp = matrix[i][j];
    25                 matrix[i][j] = matrix[i][n-1-j];
    26                 matrix[i][n-1-j] = temp;
    27                 
    28             }
    29         }
    30     }
    31 }

    参考资料:

    http://www.cnblogs.com/grandyang/p/4389572.html

    LeetCode 算法题目列表 - LeetCode Algorithms Questions List

  • 相关阅读:
    VMware安装最新版CentOS7图文教程
    git 本地给远程仓库创建分支 三步法
    git如何利用分支进行多人开发
    题解 洛谷P6478 [NOI Online #2 提高组] 游戏
    题解 CF1146D Frog Jumping
    题解 洛谷P6477 [NOI Online #2 提高组] 子序列问题
    题解 LOJ2472 「九省联考 2018」IIIDX
    题解 CF1340 A,B,C Codeforces Round #637 (Div. 1)
    题解 LOJ3284 「USACO 2020 US Open Platinum」Exercise
    windows上的路由表
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/7199624.html
Copyright © 2020-2023  润新知