https://leetcode-cn.com/problems/rotate-image/ 数组

基础

先左上到右下镜像反转
再没行反转

  1. function rotate(matrix: number[][]): void {
  2. let len = matrix.length
  3. for(let i = 0; i < len; i++) {
  4. for(let j = i; j < len; j++) {
  5. [matrix[i][j], matrix[j][i]] = [matrix[j][i], matrix[i][j]]
  6. }
  7. }
  8. matrix.map(item => item.reverse())
  9. };

找规律,每层四个矩形反转

function rotate(matrix: number[][]): void {
    let len = matrix.length
    let level = Math.floor(len / 2)
    for (let i = 0; i < level; i++) {
        for (let j = i; j < len - i -1; j++) {
            [matrix[i][j],matrix[j][len-i-1],matrix[len-i-1][len-j-1],matrix[len-j-1][i]]
            =
            [matrix[len-j-1][i],matrix[i][j],matrix[j][len-i-1],matrix[len-i-1][len-j-1]];
        }
    }
};