文章

28

粉丝

226

获赞

53

访问

144.5k

头像
找到行列变化关系
推荐阅读
Sacan SVIP
P1221 同济大学机试题
发布于2022年6月3日 19:32
阅读数 5.4k

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 &...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发