博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rotate Image
阅读量:5150 次
发布时间:2019-06-13

本文共 1477 字,大约阅读时间需要 4 分钟。

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

Rotate the image by 90 degrees (clockwise).

Example

Given a matrix

[    [1,2],    [3,4]]

rotate it by 90 degrees (clockwise), return

[    [3,1],    [4,2]] 分析: 本题的关键是找到几个互换点之间位置的关系。
1 public class Solution { 2     /** 3      * @param matrix: 4      *            A list of lists of integers 5      * @return: Void 6      */ 7     public void rotate(int[][] matrix) { 8         if (matrix == null || matrix.length == 0) return; 9         int n = matrix.length - 1;10         for (int i = 0; i < (n + 1) / 2; ++i) {11             for (int j = i; j < n - i; ++j) {12                 int t = matrix[i][j];13                 matrix[i][j] = matrix[n - j][i];14                 matrix[n - j][i] = matrix[n - i][n - j];15                 matrix[n - i][n - j] = matrix[j][n - i];16                 matrix[j][n - i] = t;17             }18         }19     }20 }

 对于一个正方形边上的四个对应点,它们有下面的关系:n = 边长 - 1

上: (x, y)

下:(n - x, n - y)

左:(n - y, x)

右:(y, n - x)

另一种解法:

The idea was firstly transpose the matrix and then flip it symmetrically. For instance,

1  2  3             4  5 6 7 8 9

after transpose, it will be swap(matrix[i][j], matrix[j][i])

1  4  72  5 8 3 6 9

Then flip the matrix horizontally. (swap(matrix[i][j], matrix[i][matrix.length-1-j])

7  4  18  5 2 9 6 3

Hope this helps.

1 public class Solution { 2     public void rotate(int[][] matrix) { 3         for(int i = 0; i

 

 

转载于:https://www.cnblogs.com/beiyeqingteng/p/5683342.html

你可能感兴趣的文章
Ubuntu 16.04中安装谷歌Chrome浏览器
查看>>
css3种方法实现元素的绝对居中
查看>>
在Eclipse中查看JDK类库的源代码
查看>>
API第二讲
查看>>
架构模式中的Active Record和Data Mapper
查看>>
linux每日命令(32):gzip命令
查看>>
layui 在实例中设置了 id 下面的table id 就应使用设置的id ,否则获取不到值
查看>>
ASP HTML JS CSS JQ之间恩怨
查看>>
(转)直方图反向投影
查看>>
[Other]来做一个微信打印机吧 -- 微信打印的设计思路參考
查看>>
使用EXCEL设置“下拉菜单”选项功能
查看>>
Codeforces Round #Pi (Div. 2) 567E President and Roads ( dfs and similar, graphs, hashing, short...
查看>>
MVVM(一)数据代理源码分析
查看>>
在.NetCore中使用Myrmec检测文件真实格式
查看>>
linux kernel 平台总线实例分析
查看>>
C获取当前时间
查看>>
Codeforces Round #472 (rated, Div. 2, based on VK Cup 2018 Round 2)
查看>>
20190422 SQL SERVER 服务
查看>>
oracle删除当前用户以及当前用户所有表、索引等操作
查看>>
Hadoop和RDBMS的混合系统介绍
查看>>