文章
28
粉丝
226
获赞
53
访问
144.5k
1. op1:顺时针旋转90°
则原来的第i行变成了第m-1-i行(0 <= i < m);原来的第j列变成了第j行。
所以:b[j][m-1-i] = a[i][j];
2. op2:翻转
这个最简单。原来的第i行还是第i行。原来的第j列变成了n-1-j列(0 <= j < n)。
所以: b[i][n-j-1] = a[i][j];
3. op3:逆时针旋转90°
原来的第i行变成了第i列。原来的第j列变成了n-1-j行(0 <= j < n)。
所以:b[n-j-1][i] = a[i][j];
#include <iostream>
#include <vector>
using namespace std;
void op1(vector<vector<int>>& a){
int m = a.size();
int n = a[0].size();
vector<vector<int>> b(n, vector<int> (m));
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
b[j][m-1-i] = a[i][j];
}
}
a = b;
}
void op2(vector<vector<int>>& a){
int m = a.size();
int n = a[0].size();
vector<vector<int>> b(m, vector<int> (n));
for(int i = 0;i &...
登录后发布评论
暂无评论,来抢沙发