1 条题解
-
0
练64.1 图像旋转
解题思路
顺时针90度的输出第j行是原第j列倒序,即依次A[n-1][j]…A[0][j],共m行n列。
正确性说明
依题目给出的对应关系逐项处理,位置与原输入保持明确对应。每一步完成当前项的全部贡献,结束后得到所有位置或字符的目标结果。
易错点
输出不额外打印维度;原图非正方形也适用。
复杂度
时间O(nm),空间O(nm)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<vector<int>> a(n, vector<int>(m)); for (auto &r : a) for (int &x : r) cin >> x; for (int j = 0; j < m; j++) { for (int i = n - 1; i >= 0; i--) { if (i != n - 1) cout << " "; cout << a[i][j]; } cout << "\n"; } return 0; }
- 1