• 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

  • 相关阅读:
    sysbench 安装遇到的问题
    Mysql对用户操作加审计功能——高级版
    Mysql对用户操作加审计功能——初级版
    最近身体越来越差了
    ORCHARD学习教程-安装
    ORCHARD学习教程-介绍
    SharePoint配置网站集的审核设置
    Sharepoint 文档知识管理系统--Word在试图打开文件时遇到错误
    Python&Django学习系列之-激活管理界面
    Flutter
  • 原文地址:https://www.cnblogs.com/jimmycheng/p/7199624.html
Copyright © 2020-2023  润新知