题解 | #蛇形矩阵#

蛇形矩阵

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

找规律,模拟矩阵

#include <iostream>
#include <vector>
using namespace std;

int main(){
    int N = 0;
    cin >> N;
    vector<vector<int>> nums(N, vector<int>(N, 0));
    int val = 1;
    int k = N;
    for (int i = 0; i < N; i++) {
        int step = i + 2;
        int temp = val;
        for (int j = 0; j < k; j++) {
            nums[i][j] = temp;
            temp += step;
            step++;
        }
        k--;
        val += i + 1;
    }
    // 输出
    for (vector<vector<int>>::iterator iter = nums.begin(); iter != nums.end(); iter++) {
        auto temp = *iter;
        for (vector<int>::iterator iterr = temp.begin(); iterr != temp.end(); iterr++) {
            if (*iterr != 0) cout << *iterr << " ";
        }
        cout << endl;
    }

}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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