算法--帕斯卡三角(杨辉三角)JS写法
题目:
Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.
In Pascal’s triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 5
Output:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
博主写的初步解法:
已知根据上一层的数据可以求出下一层的数据
这里设arr1为上一层的数组,arr2为下一层的数组
/*** @param {number} numRows* @return {number[][]}*/
var generate = function(numRows) {let arr = [];let arr1 = [], arr2 = [1];for (let i = 1; i <= numRows; i++) {// 替换上一层的数组arr1 = [].concat(arr2);arr.push(arr1);for(let j = i; j > 0; j--) {// 每层数组的开始和结尾数据都为1arr2[0] = 1;arr2[i] = 1;if (j > 0 && j < i) {// 除开始和结尾数据以外的其他数据都等于上一层的两个数据的和arr2[j] = arr1[j - 1] + arr1[j];}}}return arr;
};
上面那种解法在时间上是没有问题的,但是运用了两个数组,占用了更多内存。实际上arr1是没有必要的,可以直接在arr2上进行修改,因为往下的每一层数据都在递增,所以不存在数组中数据丢失的问题。
这里我们把arr1和arr2换成一个数组arr1,解法如下:
/*** @param {number} numRows* @return {number[][]}*/
var generate = function(numRows) {let arr = [];let arr1 = [1];for (let i = 0; i < numRows; i++) {for(let j = i; j > 0; j--) {if (j === i) {// 每行末尾值等于上一行的末尾值arr1[j] = arr1[j - 1]} else if (j === 0) {// 每行的开始值等于1arr1[j] = arr1[0]} else {arr1[j] = arr1[j - 1] + arr1[j];}}arr.push([].concat(arr1));}return arr;
};
算法--帕斯卡三角(杨辉三角)JS写法相关推荐
- 【每日一算法】杨辉三角 II
每日一算法-杨辉三角 II 题目 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] ...
- js算法:杨辉三角(帕斯卡三角)
什么是杨辉三角(帕斯卡三角): 数学之美:杨辉三角(帕斯卡三角)的奇特性质 百度百科 实现思路 根据上一行计算下一行,需要实现 type calculateNext = (row: number[]) ...
- 【算法】杨辉三角(贾宪三角)(帕斯卡三角)
1.先看结果,如果输出行数特别多的情况还是会乱码,控制空格的格式请教大家~~ 2.核心部分是当前层的输出为上一层左右之和(从第三行开始,且忽略开头和结尾): ary[i][j] = ary[i-1][ ...
- 【每日一算法】杨辉三角到底是什么?
每日一算法-杨辉三角 题目 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出:[ [1], ...
- Java 帕斯卡三角/杨辉三角
帕斯卡三角在国内教科书中成为杨辉三角,他们形如下图: 观察其规律,可以看到每一层的其实和结束都是1,层数和元素个数相同.在当层数大于2层,非起始元素的值计算公式为:data[i][j] =data[i ...
- 算法题目——杨辉三角问题
思路: #include<iostream> #include<cstdio> #include<cstring> #
- 每天Leetcode 刷题 初级算法篇-杨辉三角
题目要求: 力扣题解: 代码 import java.util.ArrayList; import java.util.List;/*** @program: mydemo* @description ...
- PHP算法之杨辉三角
2019独角兽企业重金招聘Python工程师标准>>> class T{private $num;public function __construct($var=10) {if ( ...
- js算法集合(二) javascript实现斐波那契数列 (兔子数列) Javascript实现杨辉三角...
js算法集合(二) 斐波那契数列.杨辉三角 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列和杨辉三角进行研究,来加深对Javascript的理 ...
- 帕斯卡三角形html,JS实现的杨辉三角【帕斯卡三角形】算法示例
本文实例讲述了JS实现的杨辉三角[帕斯卡三角形]算法.分享给大家供大家参考,具体如下: 杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的<详解九章算法> ...
最新文章
- matlba 正交基
- Session对象的应用
- python asyncio tcp转发_aiohttp + asyncio 异步网络请求基本操作
- 查看 固态硬盘位置_3米防摔+人脸/指纹解锁:西数Armorlock移动固态硬盘
- 二十五、PHP框架Laravel学习笔记——模型的一对一关联
- 从 活动选择问题 看动态规划和贪心算法的区别与联系
- 电线bat_电线之间的新功能
- 2021年合肥学院校程序设计竞赛 --H.简单的桌游问题
- 有个内含单词的超大文本文件_如果你家有个大阳台,你会选择封阳台吗?
- FreeRTOS学习笔记---动态创建任务 xTaskCreate() 源码分析
- CENTSO5中如何加DNS,IP
- 编程实现 有符号乘法溢出判断
- 从0到60%:中国在环球指数当中的崛起
- http抓包实践--(六)-fiddler抓包手机
- DeepFaceLab 模型预训练参数Pretrain的使用!
- vim 编辑器sed 替换字符串方法
- 美化桌面软件测试面试题,软件测试面试题的经典逻辑题
- 红帽linux默认用户名,RedHat Linux实现root身份的Telnet登录
- 射线法进行地理空间坐标计算
- 单窗口单ip技术是什么
热门文章
- 第三方服务-阿里云视频点播服务java服务端SDK相关代码
- js 读取json文件_JavaScript 项目中常见配置文件介绍
- 计算机用户管理怎么进入,我有计算机管理员和受限用户不出现欢迎使用直接进入受限用户怎么办...
- 记忆化搜索=搜索的形式+动态规划的思想(来自百度百科)
- 为Go编译的Windows程序加入资源文件
- python几个面试题整理
- Sqlserver学习研究
- 视频基础知识:浅谈视频会议中H.264编码标准的技术发展
- 如何实现A星寻路算法 Cocos2d-x 3.0 beta2
- android preferenceActivity的用法