LC 旋转图像

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。(不能使用额外矩阵空间)

思路:

◇ 可以看出 n * n 的二维矩阵的顺时针旋转存在一定的规律性,随后对旋转完成之后的矩阵和初始的矩阵进行对比,发现其本质就是矩阵先进行对角互换,之后进行左右互换

/**
 Do not return anything, modify matrix in-place instead.
 */
function rotate(matrix: number[][]): void {
    if(!matrix.length)
			return;
    // 记录当前矩阵的行列
    let row = matrix.length;
    let column = matrix[0].length;
    // 对角交换
    for(let i=0; i<row; i++) {
        for(let j=i; j<column; j++) {
            const temp = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = temp;
        }
    }
    // 左右交换
    for(let i=0; i<row; i++) {
        for(let j=Math.floor(column/2); j<column; j++) {
            const temp = matrix[i][j];
            matrix[i][j] = matrix[i][column - j - 1];
            matrix[i][column - j - 1] = temp;
        }
    }
};

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值