Java 帕斯卡三角/杨辉三角
帕斯卡三角在国内教科书中成为杨辉三角,他们形如下图:
观察其规律,可以看到每一层的其实和结束都是1,层数和元素个数相同。在当层数大于2层,非起始元素的值计算公式为:data[i][j] =data[i-1][j-1] + data[i-1][j]
分析到这里,解决方法已经出来了,我们使用递推公式,对每一层的元素进行处理,下面给出对应的实现:
1. 使用递推公式求解杨辉三角
public List<List<Integer>> testPascal(int numRows) {List<List<Integer>> rst = new ArrayList<>();if (numRows < 0){return null;}for (int i = 0; i < numRows; ++i) {List<Integer> current = new ArrayList<>();//开始元素为1current.add(1);//当层数大于2层的时候,使用迭代公式if (i > 1) {for (int j = 1; j < i; ++j) {List<Integer> tmp = rst.get(i - 1);current.add(tmp.get(j - 1) + tmp.get(j));}}if (i > 0) {current.add(1);}rst.add(current);}return rst;}
2. 使用数学变换求解杨辉三角
在维基百科上可以看到,杨辉三角其实可以通过数学变换,其与二项式展开形式一致。具体可以去维基百科上看,实现可以参考这篇博客:
https://www.cnblogs.com/JumperMan/p/6759422.html
Java 帕斯卡三角/杨辉三角相关推荐
- java代码杨辉三角_用java实现杨辉三角的示例代码
之前有学弟问过我一道java的面试题,题目不算难.用java实现杨辉三角.我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下.在写代码之前,我们先理清下面两个问题. 什么是杨辉三角 杨辉三角 ...
- php数组写杨辉三角java_用java实现杨辉三角的示例代码
之前有学弟问过我一道java的面试题,题目不算难.用java实现杨辉三角.我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下.在写代码之前,我们先理清下面两个问题. 什么是杨辉三角 杨辉三角 ...
- Java打印杨辉三角
Java打印杨辉三角 打印杨辉三角首先要理清楚思路,找到其中的规律,,然后通过其中的规律用java循环的方法想办法解决掉.我们通过仔细的观察不难发现杨辉三角除每行最左侧和最右侧的数字外,每个数字等于它 ...
- Java实现杨辉三角的打印
Java打印杨辉三角的两种方式 方式1:打印直角三角形 //这里的行数可以修改为根据键盘输入获取 int row = 8;//杨辉三角的行数 int[][] arr = new int[row][ro ...
- Java之杨辉三角的实现
今天突然想温习一下Java的基础,想了想就写写杨辉三角吧 1.直接法,利用二维数组 1 import java.util.Scanner; 2 public class Second 3 { 4 pu ...
- Java 输出杨辉三角
今天在学习Java数组的时候,写了个杨辉三角的输出,只输出到前10行. 关键的内容在内部那个for循环上. 话不多说,直接上代码. public class YangHuiArray {public ...
- Java编程——杨辉三角(一)
杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是中国古代 ...
- 用Java实现杨辉三角
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: numRows = 5 输出: [[1],[1, ...
- 【Java】 杨辉三角 二维数组打印杨辉三角
Tips 打印三角的操作 : 每行打印前预留空格 打印指定数量的星号后换行 重复循环打印直至完成所有打印结果 杨辉三角: 三角规律空格最大对称值为 5 大于 5 则会变形 三角规律为当前值为上一个值加 ...
最新文章
- qt socket 传递结构体 结构体中有list_计算机网络应用--Socket编程实验(二)
- C语言简易行编辑器,简单的行编辑器C语言.doc
- [Java基础]LinkedHashSet集合概述和特点
- php 常用的日期函数,常用php日期函数总结
- 结构设计模式 - 代理设计模式
- 北大程序设计实习MOOC 编程作业 《魔兽世界之二:装备》
- VMware Workstation Player与VMware Workstation Pro的区别
- git tag 的基本用法
- liferay+portlet+开发实例
- 用engineercms建立项目管理平台
- WIN10电脑自动关机命令
- 基于51单片机的跳一跳游戏程序设计(C语言)
- 终极免费云盘同步攻略
- 推荐13个高清优质无版权图库
- T216909 小卡与质数2 (前缀和 欧拉筛
- 斯诺克 Snooker
- Java实现窗口框架,转换金额的大小写
- 十一、MYSQL数据库备份还原
- English Word —— Day 11(discipline——editorial)
- python应用领域介绍 -- (python 真的很强大)
热门文章
- python遍历数组获取下标
- python爬快手个人介绍个性_快手主页介绍个性资料怎么写 快手主页介绍个性签名大全...
- 最新面试:快手社招Java岗面试经历分享
- 邻接矩阵对称归一化的作用
- 高并发核心编程Spring Cloud+Nginx秒杀实战,秒杀业务的参考实现
- 偷摸的回校,打枪的不要!
- SDN被放弃?5G承载网:我一点也不慌!
- 解决 deeplearning4j 报错 Symbol not found: ___emutls_get_address
- 微信开发 - 微信录音临时转永久存储
- 高并发 统计对账Java_高并发场景下强一致预算/库存扣减方案