1. 题目来源
2. 题目解析
模拟题。
写一个函数,实现将二维方阵顺时针旋转 90 度的操作即可。
旋转 4 次,判断两方阵是否相等。
分方向遍历二维矩阵即可,也是需要理清楚行列关系的…没理清 2WA…
时间复杂度: O ( n 2 ) O(n^2) O(n2)
空间复杂度: O ( n 2 ) O(n^2) O(n2)
class Solution {
public:
vector<vector<int>> rotate(vector<vector<int>> a) {
int n = a.size();
vector<vector<int>> res(n, vector<int>(n));
for (int i = 0; i < n; i ++ )
for (int j = 0, k = n - 1; j < n; j ++ , k -- )
res[i][j] = a[k][i];
return res;
}
bool findRotation(vector<vector<int>>& mat, vector<vector<int>>& target) {
for (int i = 0; i < 4; i ++ ) {
mat = rotate(mat);
if (mat == target) return true;
}
return false;
}
};