天天看點

#yyds幹貨盤點# 面試必刷TOP101:順時針旋轉矩陣

1.簡述:

描述

有一個NxN整數矩陣,請編寫一個算法,将矩陣順時針旋轉90度。

給定一個NxN的矩陣,和矩陣的階數N,請傳回旋轉後的NxN矩陣。

資料範圍:,矩陣中的值滿足 

要求:空間複雜度 ,時間複雜度 

進階:空間複雜度 ,時間複雜度 

示例1

輸入:

[[1,2,3],[4,5,6],[7,8,9]],3      
[[7,4,1],[8,5,2],[9,6,3]]      
import java.util.*;
public class Solution {
    public int[][] rotateMatrix(int[][] mat, int n) {
        int length = mat.length;
        //矩陣轉置
        for(int i = 0; i < length; ++i){
            for(int j = 0; j < i; ++j){
                //交換上三角與下三角對應的元素
                int temp = mat[i][j];
                mat[i][j] = mat[j][i];
                mat[j][i] = temp;
            }
        }
        //每行翻轉
        for (int i = 0; i < length; i++) {
            for (int j = 0; j < length/2; j++){
                int temp = mat[i][j];
                mat[i][j] = mat[i][length - j - 1];
                mat[i][length - j - 1] = temp;
            }
        }
        return mat;
    }
}
      

繼續閱讀