题解 | #蛇形矩阵#

蛇形矩阵

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;
}
全部评论

相关推荐

03-18 09:45
莆田学院 golang
牛客749342647号:佬,你这个简历模板是哪个,好好看
点赞 评论 收藏
分享
牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务