题解 | 蛇形矩阵

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    function generateMatrix(n) {
        let matrix = new Array(n);
        for (let i = 0; i < n; i++) {
            matrix[i] = new Array(n);
            matrix[i][0] = 1 + (i * (i + 1)) / 2; // 计算每一行第一个元素
        }
        for (let j = 1; j < n; j++) {
            for (let i = 0; i < n - j; i++) {
                matrix[i][j] = matrix[i + 1][j - 1] + 1; // 根据依赖关系填充上三角部分
            }
        }
        for (let i = 0; i < n; i++) {
            let row = [];
            for (let j = 0; j < n - i; j++) {
                row.push(matrix[i][j]);
            }
            console.log(row.join(" ")); // 按行输出上三角部分
        }
    }
    let input = await readline();
    generateMatrix(input);
})();

全部评论

相关推荐

大愣子衰哥:老哥,是正式还是实习
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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