- 题目描述


题目来源
#include <iostream>
#include <vector>
using namespace std;
class Solution
{
public:
void rotate(vector<vector<int>>& matrix)
{
int sr = 0;
int sc = 0;
int er = matrix.size() - 1;
int ec = matrix[0].size() - 1;
while (sr < er)
{
rotateEdge(matrix, sr, sc, er, ec);
sr++;
sc++;
er--;
ec--;
}
}
private:
void rotateEdge(vector<vector<int>>& matrix, int a, int b, int c, int d)
{
int temp = 0;
for (int i = 0; i < c - a; i++)
{
temp = matrix[a][b + i];
matrix[a][b + i] = matrix[c - i][b];
matrix[c - i][b] = matrix[c][d - i];
matrix[c][d - i] = matrix[a + i][d];
matrix[a + i][d] = temp;
}
}
};
int main()
{
int n = 0;
cin >> n;
vector<vector<int>> matrix(n, vector<int>(n));
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> matrix[i][j];
}
}
Solution s;
s.rotate(matrix);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步