博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode之JavaScript解答-118题:帕斯卡三角形
阅读量:6411 次
发布时间:2019-06-23

本文共 940 字,大约阅读时间需要 3 分钟。

地址:

题目:

给定numRows, 生成帕斯卡三角形的前numRows行。

例如, 给定numRows = 5,

返回

[     [1],    [1,1],   [1,2,1],  [1,3,3,1], [1,4,6,4,1]]复制代码

分析:

这个题重点就是找到帕斯卡三角形(杨辉三角)的实现规律:行数跟最长项的列数相等;每个数字等于上一行的左右两个数字之和,也就是对于上一层a和下一层b之间,有这么一个关系: b[i+1] = a[i] + a[i+1] ;当然规律很多,但这两个规律就可以实现代码了。

答案:

/** * @param {number} numRows * @return {number[][]} */var generate = function(numRows) {    var result = [];    for (var i = 1; i <= numRows; i++) {        if (i == 1) result.push([1]);        else if (i == 2) result.push([1, 1]); // numRows为1或2的情况需要单独处理        else {            var preArr = result[result.length - 1]; // 前一行数组            var arr = new Array(i); // 项数为i的本行数组            arr[0] = 1; // 每行数组的第一个数为1            for (var j = 0; j < i - 2; j++) {                arr[j + 1] = preArr[j] + preArr[j + 1]; // 每个数字等于前一行相邻两个数字之和            }            arr[i - 1] = 1; // 每行数组的最后一个数为1            result.push(arr);        }    }    return result;};复制代码

我是月铭泽,欢迎各位童鞋指正交流^_^

转载地址:http://zkkra.baihongyu.com/

你可能感兴趣的文章
sap 常用表
查看>>
责任链与装饰者模式(基本介绍)【设计模式1】
查看>>
Service
查看>>
Codeforces #380 Subordinates(贪心 构造)
查看>>
C# 一个最简单的GET,返回网页源码
查看>>
结对项目--黄金点游戏(邓乐&曾亮)
查看>>
Hdu 1269 强连通判定
查看>>
用例管理平台维护记录
查看>>
nginx实战(三)之静态资源web服务(跨站访问)
查看>>
centos配置golang & SVN客户端配置
查看>>
【HNOI 2017】大佬
查看>>
Appium+Robotframework实现Android应用的自动化测试-5:RIDE中AppiumLibrary的配置
查看>>
git 提交代码到开源中国
查看>>
C# 指定平台编译项目
查看>>
「Luogu3355」 骑士共存问题
查看>>
c#后台线程更新界面
查看>>
冒泡排序-----选择排序
查看>>
CRC从原理到实现
查看>>
jquery-json 插件使用方法
查看>>
List集合共性方法
查看>>