赞
踩
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
输入: matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出: [[7,4,1],[8,5,2],[9,6,3]]
输入: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
输出: [[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]
提示
代码示例
/** * @param {number[][]} matrix * @return {void} Do not return anything, modify matrix in-place instead. */ var rotate = function(matrix) { const len=matrix.length; const temp=[] for(let i=0;i<len;i++){ temp.push([]) } for(let i=0;i<len;i++){ let row=matrix[i];//当前行 换到最后一列 1 2 3 // 换到最后一列 for(let j=0;j<len;j++){ temp[j][len-i-1]=row[j]; } } for(let i=0;i<len;i++){ matrix[i]=temp[i]; } };
执行情况:
tip:
其实该题的本质算是二维矩阵的转换,可以用草图尝试画出位置转换关系即可求解
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。