LeetCode 48 旋转图像 JavaScript 解决方案

208 阅读1分钟

思路

一圈一圈的转 就很方便 有点像蚊香 那样的转法 见图,坐标对准即可。

20200407120809.jpg

代码

/**
 * @param {number[][]} matrix
 * @return {void} Do not return anything, modify matrix in-place instead.
 */
var rotate = function(matrix) {
    let sideOrigin = matrix.length;
    let circle = Math.floor(sideOrigin / 2);
    for(let distance = 0; distance < circle; ++distance) {
        let side = sideOrigin - distance * 2;
        for(let i = 0; i < side - 1; ++i) {
            let tmp = matrix[distance + i][distance]; // √
            matrix[distance + i][distance] = matrix[sideOrigin - distance - 1][distance + i];
            matrix[sideOrigin - distance - 1][distance + i] = matrix[sideOrigin - distance - i - 1][sideOrigin - distance - 1];
            matrix[sideOrigin - distance - i - 1][sideOrigin - distance - 1] = matrix[distance][sideOrigin - distance - i - 1];
            matrix[distance][sideOrigin - distance - i - 1] = tmp;
        }
    }
};