您的位置:首页 > 其它

牛客网——顺时针旋转矩阵

2017-04-02 16:14 405 查看

题目描述

有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。测试样例:有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。测试样例:
[[1,2,3],[4,5,6],[7,8,9]],3
返回:[[7,4,1],[8,5,2],[9,6,3]]
public int[][] rotateMatrix(int[][] mat, int n) {// write code hereif(n==1)return mat;int [][]R = new int;for(int i =0;i<n;i++){for(int j = 0;j<n;j++){R[j][n-1-i] = mat[i][j];}}return R;}
解题思路:观察到 如3*3矩阵 123,456,789. 顺时针旋转以后变成741,852,963.
可以发现 将第一行,变成了第三列。 第二行变成了第二列,第三行变成了第一列。根据这样可以把矩阵旋转。
这种解法对于m*n阶矩阵也可以使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: