LeetCode 面试题 01.07. 旋转矩阵
题目 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法, 将图像旋转 90 度。不占用额外内存空间能否做到? 示例 给定 矩阵 [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 思路:先将其写斜对角线翻折,再对每行以中点为中心翻折 [1,2,3], [1,4,7], [7,4,1], [4,5,6], ===> [2,5,8], ===> [8,5,2], [7,8,9] [3,6,9] [9,6,3] 代码 public void rotate(int[][] matrix) { for(int i=0; i<matrix.length; i++){ for(int j=i+1; j<matrix[0].length; j++){ int t = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = t; } } int n = matrix.length; int mid = n/2; for(int i=0; i<matrix.length; i++){ for(int j=0; j<mid; j++){ int t = matrix[i][j]; matrix[i][j]