JS实现的杨辉三角【帕斯卡三角形】算法示例
本文实例讲述了JS实现的杨辉三角【帕斯卡三角形】算法。分享给大家供大家参考,具体如下:
杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。 在欧洲,帕斯卡(1623-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。 帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
题目: 给定非负整数numRows,生成Pascal三角形的第一个numRows。在Pascal的三角形中,每个数字是它上面两个数字的总和。
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
JS代码如下:
<script> var generate = function(numRows) { if (numRows) { var result = [[1]]; for(var i = 1;i < numRows;i++) { result[i] = []; for(var j = 0; j < i + 1;j++) { result[i][j] = (result[i - 1][j] || 0) + (result[i - 1][j - 1] || 0); } } return result; }else { return []; } }; console.log(generate(1000)); </script>
使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:
由于数据比较多,这里仅展示一部分运算结果,感兴趣的朋友可以自己动手测试一下,看看运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
相关推荐
-
JS实现的合并两个有序链表算法示例
本文实例讲述了JS实现的合并两个有序链表算法.分享给大家供大家参考,具体如下: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 可以直接运行的方案: <script> function Node(element) { this.element = element;//当前节点的元素 this.next = n
-
JavaScript实现连连看连线算法
本文实例为大家分享了JavaScript实现连连看连线算法的多种情况,供大家参考,具体内容如下 第一种情况为两个精灵能通过一条直线连接,如下图 代码如下: var self = this; //用self变量来保存当下的这个this,以免在其他函数域中this指向不同对象而调用错误 //直线连接的两个对象 function isDirectLink(_begin,_end){ //若传入的是同一对象,连线的长度为0,返回false row col 分别表示精灵的行号和列号 if(_begin.r
-
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
本文实例讲述了JavaScript数据结构与算法之检索算法.分享给大家供大家参考,具体如下: javascript数据结构与算法---检索算法(顺序查找.最大最小值.自组织查询) 一.顺序查找法 /* * 顺序查找法 * * 顺序查找法只要从列表的第一个元素开始循环,然后逐个与要查找的数据进行比较. * 如果匹配到了,则结束查找. * 如果到了列表的结尾也没有匹配到,那么这个数据就不存在于这个列表中. * */ function seqSearch(arr, data) { for (var i
-
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
本文实例讲述了JavaScript数据结构与算法之检索算法.分享给大家供大家参考,具体如下: javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){ if (arr.length == 0) { return []; } var left = [];//存储小于基准值 var right = [];//存储大于基准值 var pivot = arr[0]; fo
-
JavaScript代码简单实现求杨辉三角给定行的最大值
复制代码 代码如下: function cal(row) { var result = 1; for(var i = 0; i < row / 2; i++) { return result * = (row - i) / i; } return result; };
-
JS使用Dijkstra算法求解最短路径
一.Dijkstra算法的思路 Dijkstra算法是针对单源点求最短路径的算法. 其主要思路如下: 1. 将顶点分为两部分:已经知道当前最短路径的顶点集合Q和无法到达顶点集合R. 2. 定义一个距离数组(distance)记录源点到各顶点的距离,下标表示顶点,元素值为距离.源点(start)到自身的距离为0,源点无法到达的顶点的距离就是一个大数(比如Infinity). 3. 以距离数组中值为非Infinity的顶点V为中转跳点,假设V跳转至顶点W的距离加上顶点V至源点的距离还小于顶点W至源点
-
JS实现判断有效的数独算法示例
本文实例讲述了JS实现判断有效的数独算法.分享给大家供大家参考,具体如下: 判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 1.数字 1-9 在每一行只能出现一次. 2.数字 1-9 在每一列只能出现一次. 3.数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次. 数独部分空格内已填入了数字,空白格用 '.' 表示. 示例 1: 输入: [ ["5","3",".",".",
-
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
本文实例讲述了JavaScript数据结构与算法之二叉树遍历算法.分享给大家供大家参考,具体如下: javascript数据结构与算法--二叉树遍历(先序) 先序遍历先访问根节点, 然后以同样方式访问左子树和右子树 代码如下: /* *二叉树中,相对较小的值保存在左节点上,较大的值保存在右节点中 * * * */ /*用来生成一个节点*/ function Node(data, left, right) { this.data = data;//节点存储的数据 this.left = left;
-
JavaScript实现的拼图算法分析
本文实例分析了JavaScript实现的拼图算法.分享给大家供大家参考,具体如下: 学了html5的拖拽事件,相信做出一款小小的拼图游戏也不难吧.就来说一下怎么用drag事件完成拼图游戏吧,当然html5的新方法在IE下是不兼容的.这里我把这个拼图游戏封装成一个小插件,感兴趣的话可以直接copy来用,使用方法很简单. HTML,3个div里面什么都不用写,分别是用来放拼图,参照图,拼图面吧的. <div id="selectpanel"></div> <d
-
JS实现电话号码的字母组合算法示例
本文实例讲述了JS实现电话号码的字母组合算法.分享给大家供大家参考,具体如下: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "c
随机推荐
- 使用 Adsutil.vbs iis管理脚本
- 使用 Iisweb.vbs 暂停网站的方法
- 用Python实现QQ游戏大家来找茬辅助工具
- javascript demo 基本技巧
- c# static 静态数据成员
- C#操作mysql数据库的代码实例
- Python MD5加密实例详解
- ASP Recordset 分页显示数据的方法(修正版)
- MYSQL之插入极限分析
- JS检测图片大小的实例
- 利用python获得时间的实例说明
- jQuery 全选效果实现代码
- IIS安全设置图文教程
- 传奇自动刷怪脚本,节省服务器资源
- java 接口回调实例详解
- 详解java动态代理的2种实现方式
- 用DBSQL类加快开发MySQL数据库程序的速度
- JavaScript国旗变换效果代码
- Android判断程序是否第一次启动
- c#数据绑定之数据转化为信息的示例
其他
- tp5 仪表盘 数据交互
- BroastCastReceive获取网络状态
- el-tree 实现互斥
- 在易语言中,窗口2如何调用窗口1组件
- idea 某个类不能被引用
- java 按行读取大文件
- dataframe对某一列的数字进行0,1,2
- idea Analyze插件安装
- ubuntu与ntp时间同步
- 微信小程序云开发提交表单后跳转
- 工具类注入mapper为空
- idea中sql.DataFrame提取某一列
- C#LinkedList上一个
- JAVA8 pid获取子节点的子节点集合
- vue动态组件component
- 监听localstorage变化 mdn
- element plus autofocus失效
- mybatis,同一个xml中resultMap继承扩展
- pyqt5 自定义信号参数类型
- vue element滑动验证码