leetCode Rotate Image

99封情书 提交于 2020-12-12 02:23:53

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

Rotate the image by 90 degrees (clockwise).

do this in-place

将矩阵顺时针旋转90度,并且不开辟多余的空间。

00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33

 

思路:只旋转1/4的元素,且不包含右边对角线上的元素(橙色部分)。

            计算公式为:如果matrix为n阶方阵,则转换公式为:

                matrix[x,y]---->matrix[y][n-1-x]---->matrix[n-1-x][n-1-y]---->matrix[n-1-y][x]---->matrix[x][y]

对应JS代码为:

var b = function(matrix){
    var n = matrix[0].length;
    var temp;
    var count=0;
    for(var i=0;i<n/2;i++){
        for(var j=i;j<n-i-1;j++){
            temp = matrix[i][j];
            matrix[i][j] = matrix[n-1-j][i];
            matrix[n-1-j][i] = matrix[n-1-i][n-1-j];
            matrix[n-1-i][n-1-j] = matrix[j][n-1-i];
            matrix[j][n-1-i] = temp;
        }
    }
    return matrix;
}

原创,转载请注明出处

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!