[LeetCode] Rotate Image
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
需要O(N)的辅助空间,应该有个O(1)空间的。但似乎比较复杂。
1 class Solution { 2 public: 3 void rotate(vector<vector<int> > &matrix) { 4 // Start typing your C/C++ solution below 5 // DO NOT write int main() function 6 vector<int> temp(matrix.size()); 7 8 int begX = 0; 9 int begY = 0; 10 int endX = matrix.size() - 1; 11 int endY = matrix[0].size() - 1; 12 13 while(begX < endX) 14 { 15 for(int i = begY + 1; i <= endY - 1; i++) 16 temp[i] = matrix[begX][i]; 17 18 int index = endX - 1; 19 for(int i = begY + 1; i <= endY - 1; i++) 20 matrix[begX][i] = matrix[index--][begY]; 21 22 index = begY + 1; 23 for(int i = begX + 1; i <= endX - 1; i++) 24 matrix[i][begY] = matrix[endX][index++]; 25 26 index = endX - 1; 27 for(int i = begY + 1; i <= endY - 1; i++) 28 matrix[endX][i] = matrix[index--][endY]; 29 30 for(int i = begX + 1; i <= endX - 1; i++) 31 matrix[i][endY] = temp[i]; 32 33 int t = matrix[begX][begY]; 34 35 matrix[begX][begY] = matrix[endX][begY]; 36 matrix[endX][begY] = matrix[endX][endY]; 37 matrix[endX][endY] = matrix[begX][endY]; 38 matrix[begX][endY] = t; 39 40 begX++; 41 begY++; 42 endX--; 43 endY--; 44 } 45 } 46 };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】