zoukankan      html  css  js  c++  java
  • [LeetCode]48. Rotate Image 旋转图片

    参考自会咬人的兔子

    方法一:一步旋转

    class Solution {
    public:
        void rotate(vector<vector<int>>& matrix) {
            int n = matrix.size();
            for(int i = 0; i < n / 2; i++){
                for(int j = i; j < n - 1 - i; j++){
                    int tmp = matrix[i][j];
                    matrix[i][j] = matrix[n - 1 - j][i];
                    matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j];
                    matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i];
                    matrix[j][n - 1 - i] = tmp;
                }
            }
        }
    };

    方法二:首先以从对角线为轴翻转,然后再以x轴中线上下翻转即可得到结果

    class Solution {
    public:
        void rotate(vector<vector<int>>& matrix) {
            int n = matrix.size();
            for(int i = 0; i < n - 1; i++){//i只能取到 n - 2, 因为n - 1是对称轴
                for(int j = 0; j < n - 1 - i; j++){//j只能取到n - 1 - i, 在对称轴的左边
                    swap(matrix[i][j], matrix[n - 1 - j][n - 1 - i]);
                }
            }
            for(int i = 0; i < n / 2; i++){//i只能取到横向中间轴的上面
                for(int j = 0; j < n; j++){//j可以取到所有值
                    swap(matrix[i][j], matrix[n - 1 - i][j]);//按横向轴翻转,j不变;i变为n-1-i
                }
            }
        }
    };
  • 相关阅读:
    SUM游戏
    指针入门(四)
    MSP430 G2553 寄存器列表与引脚功能
    MSP430G2553头文件解析
    修复Kaos的中文显示
    VIM使用技巧3
    VIM使用技巧2
    Java学习之路(3)
    指针入门(三)
    共享VIM配置文件
  • 原文地址:https://www.cnblogs.com/bright-mark/p/9458970.html
Copyright © 2011-2022 走看看