力扣48. 旋转图像

几何翻转

  • 思路:
    • 顺时针旋转可以拆解成:
      • 先沿着水平中轴线进行翻转: m[i][j] -> m[n - 1 - i][j]
        • (x1 + x2) / 2 = (n - 1) / 2
        • x1 = (n - 1) - x2
        • y 轴不变
      • 沿着主对角线进行翻转: m[i][j] -> m[j][i]
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int size = matrix.size();
        // flip horizontal
        for (int i = 0; i < size / 2; ++i) {
            for (int j = 0; j < size; ++ j) {
                std::swap(matrix[i][j], matrix[size -1 - i][j]);
            }
        }

        // flip main diagonal
        for (int i = 0; i < size; ++i) {
            for (int j = 0; j < i; ++j) {
                std::swap(matrix[i][j], matrix[j][i]);
            }
        }
    }
};
  • 可以参考坐标变换的变换矩阵

相关推荐

  1. 48. 旋转图像

    2024-01-12 07:34:05       27 阅读
  2. 100】48.旋转图像

    2024-01-12 07:34:05       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-12 07:34:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-12 07:34:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-12 07:34:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-12 07:34:05       18 阅读

热门阅读

  1. 如何在 Ubuntu 20.04 上安装 Node.js

    2024-01-12 07:34:05       34 阅读
  2. 汽车销售领域相关专业术语

    2024-01-12 07:34:05       42 阅读
  3. Github

    Github

    2024-01-12 07:34:05      33 阅读
  4. Linux文件和目录管理命令----ln命令

    2024-01-12 07:34:05       31 阅读
  5. Mac无法访问GitHub

    2024-01-12 07:34:05       36 阅读
  6. Spark九:Spark调优之Shuffle调优

    2024-01-12 07:34:05       35 阅读
  7. 【我的Rust库】get_local_info 0.1.9发布

    2024-01-12 07:34:05       32 阅读
  8. 如何在 Ubuntu 20.04 上安装 Rust

    2024-01-12 07:34:05       31 阅读