题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

蛇形矩阵之比较笨拙的方法:

观察蛇形矩阵发现,对角边的元素分别为{1}, {2,3}, {4,5,6}, ……且第n行的元素为数组的倒数第n个元素。

思路:对于N行蛇形矩阵,构造N个数组,分别为{1}, {2,3}, {4,5,6}, ……,然后输出每个数组的倒数第n个元素(n=1,2,……,N)

注意第n个数组只出现在前n行

#include<iostream>
#include<vector>

using namespace std;

int main() {
    int N;
    cin >> N;//N行的蛇形矩阵
    vector<vector<int>> v;//v存储所有的数组
    vector<int> v1;//暂存数组
    int i, j, k = 1;
    //构建N个数组,分别为{1},{2,3},{4,5,6},...
    for (i = 0; i < N; ++i) {
        for (j = 0; j <= i; ++j) {
            v1.push_back(k++);
        }
        v.push_back(v1);
    }
    //蛇形矩阵第n行是每一个数组的倒数第n个元素,v[j].size()-1是倒数第一个元素
    for (i = 0; i < N; ++i) {
        for (j = i; j < N; ++j) {
            cout << v[j][v[j].size() - i - 1] << " ";
        }
        cout << endl;
    }
    return 0;
}
全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务