题解 | #蛇形矩阵#

蛇形矩阵

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

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务