DeepSeek 专家 LeetCode 48. 旋转图像 Java实现 📅 发布时间:2026/9/4 21:45:47 👁 浏览次数: 以下是 LeetCode 48. 旋转图像 的 Java 实现采用 转置 水平翻转 的方法原地修改矩阵。思路转置沿主对角线交换元素matrix[i][j] 与 matrix[j][i] 互换只遍历上三角即可。水平翻转对每一行将首尾元素依次交换实现左右反转。经过这两步原矩阵即为顺时针旋转 90° 的结果。代码classSolution{publicvoidrotate(int[][]matrix){intnmatrix.length;// 1. 转置矩阵沿主对角线翻转for(inti0;in;i){for(intji1;jn;j){inttempmatrix[i][j];matrix[i][j]matrix[j][i];matrix[j][i]temp;}}// 2. 水平翻转每一行for(inti0;in;i){intleft0,rightn-1;while(leftright){inttempmatrix[i][left];matrix[i][left]matrix[i][right];matrix[i][right]temp;left;right--;}}}}复杂度分析· 时间复杂度O(n²)需要遍历矩阵两次转置和翻转各一次。· 空间复杂度O(1)只使用了常数级额外空间。说明· 转置时从 j i 1 开始跳过对角线避免重复交换。· 水平翻转时使用双指针交换每一行的对称位置元素。· 该解法是原地算法符合题目要求。