DeepSeek 专家 LeetCode 48. 旋转图像 C++实现

DeepSeek 专家    LeetCode 48. 旋转图像 C++实现
以下是 LeetCode 48. 旋转图像 的 C 实现采用转置 行反转的方法#includevector#includealgorithmclassSolution{public:voidrotate(std::vectorstd::vectorintmatrix){intnmatrix.size();// 1. 转置矩阵沿主对角线交换for(inti0;in;i){for(intji1;jn;j){std::swap(matrix[i][j],matrix[j][i]);}}// 2. 反转每一行for(autorow:matrix){std::reverse(row.begin(),row.end());}}};思路说明顺时针旋转 90 度等价于先对矩阵进行转置再将每一行反转。· 转置交换 matrix[i][j] 和 matrix[j][i]使行列互换。· 行反转每行元素顺序颠倒即完成 90° 顺时针旋转。例如原矩阵 [1,2,3] [4,5,6] [7,8,9] 转置后 [1,4,7] [2,5,8] [3,6,9] 行反转后 [7,4,1] [8,5,2] [9,6,3]复杂度分析· 时间复杂度O(n²)转置遍历上三角 O(n²/2)反转每行 O(n²)。· 空间复杂度O(1)原地修改仅使用常数级额外空间。这种方法简洁明了是本题最优解法之一。

最新新闻

日新闻

周新闻

月新闻