//给定一个 n × n 的二维矩阵表示一个图像。 // // 将图像顺时针旋转 90 度。 // // 说明: // // 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 // // 示例 1: // // 给定 matrix = //[ // [1,2,3], // [4,5,6], // [7,8,9] //], // //原地旋转输入矩阵,使其变为: //[ // [7,4,1], // [8,5,2], // [9,6,3] //] // // // 示例 2: // // 给定 matrix = //[ // [ 5, 1, 9,11], // [ 2, 4, 8,10], // [13, 3, 6, 7], // [15,14,12,16] //], // //原地旋转输入矩阵,使其变为: //[ // [15,13, 2, 5], // [14, 3, 4, 1], // [12, 6, 8, 9], // [16, 7,10,11] //] // // Related Topics 数组 // 👍 746 👎 0 //leetcode submit region begin(Prohibit modification and deletion) class Solution { public void rotate(int[][] matrix) { int n = matrix.length; // 先以对角线(左上-右下)为轴进行翻转 for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { int tmp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = tmp; } } //已中轴线为准 翻转左右数据 int mid = matrix.length / 2; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < mid; j++) { int tmp = matrix[i][j]; matrix[i][j] = matrix[i][n-j-1]; matrix[i][n-j-1] = tmp; } } } } //leetcode submit region end(Prohibit modification and deletion)
2021-01-10 图像旋转90度,先对角线旋转,然后再按中轴线对折
最新推荐文章于 2024-03-02 21:25:46 发布