题解 | #蛇形矩阵#
蛇形矩阵
http://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
第一眼看脑淤血
- 首先,观察输入的是行数,则循环若干行。
- 其次,构建一个数组,填充 1.然后根据第一行的规律,第一个是 1,后一个是前一个数加上下标再加 1.
- 最后循环若干行,每一行都用一个字符串来保存结果最后用于输出。观察得知下一行是上一行除去开头,每一个元素再减去 1 的结果,因此保存好结果,再修改原数组,最后输出答案。
代码
while(line = ~~readline()) {
let arr = new Array(line).fill(1);
arr.forEach((i, idx) => {
if(idx !== 0) {
arr[idx] = arr[idx - 1] + idx + 1
}
})
let count = line;
while(line) {
let res = '';
for(let i = count - line;i<arr.length;i++) {
res += `${arr[i]} `;
arr[i] -= 1;
}
console.log(res.trim());
line--;
}
}