基于Java实现杨辉三角 LeetCode Pascal's Triangle
Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
这道题比较简单, 杨辉三角, 可以用这一列的元素等于它头顶两元素的和来求.
数学扎实的人会看出, 其实每一列都是数学里的排列组合, 第4行, 可以用 C30 = 0 C31=3 C32=3 C33=3 来求
import java.util.ArrayList; import java.util.List; public class Par { public static void main(String[] args) { System.out.println(generate(1)); System.out.println(generate(0)); System.out.println(generate(2)); System.out.println(generate(3)); System.out.println(generate(4)); System.out.println(generate(5)); } public static List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<List<Integer>>(numRows); for (int i = 0; i < numRows; i++) { List<Integer> thisRow = new ArrayList<Integer>(i); thisRow.add(1); int temp = 1; int row = i; for (int j = 1; j <= i; j++) { temp = temp * row-- / j ; thisRow.add(temp); } result.add(thisRow); } return result; } }
以上内容给大家介绍了基于Java实现杨辉三角 LeetCode Pascal's Triangle的相关知识,希望大家喜欢。
相关推荐
-
java使用for循环输出杨辉三角
思路是创建一个整型二维数组,包含10个一维数组.使用双层循环,在外层循环中初始化每一个第二层数组的大小.在内层循环中,先将两侧的数组元素赋值为1,其他数值通过公式计算,然后输出数组元素. 复制代码 代码如下: public class YanghuiTriangle { public static void main(String[] args) { int triangle[][]=new int[10][];// 创建二维数组 // 遍历二维数组的第一层
-
java int类型二维数组实现“杨辉三角”的完整实例
杨辉三角的规律: 1.每行的数据个数和在第几行一样. 2.每行第一个数和最后一个数都是1. 3.每行除了第一个数据和最后一个数据 其他数据的值等于上面一行的对应列的值和左对角值的和.例如:a[2][1]=a[1][0]+a[1][1] 根据上面的规律我们设计程序 private static void demo(){ int[][] ints = new int[10][]; //动态给ints数组的一维赋值一个不同的数组 for (int i = 0; i < ints.length; i++
-
用java实现杨辉三角的示例代码
之前有学弟问过我一道java的面试题,题目不算难.用java实现杨辉三角.我花了点时间整理了一下,发现挺有意思的,于是想写下来分享一下.在写代码之前,我们先理清下面两个问题. 什么是杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列.在我国南宋数学家杨辉1261年所著的<详解九章算法>有提到过.在欧洲叫做帕斯卡三角形,如图. 杨辉三角 杨辉三角的规律即原理 1.每个数等于它上方两数之和. 2.每行数字左右对称,由1开始逐渐变大. 3.第n行的数字有n项. 4.第n行数字和为2n-1. 5
-
java编程实现杨辉三角两种输出结果实例代码
首先展示下结果: 简介: 杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年.杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的优美结合. 实例代码如下: package com.sxt; import java.util.Arrays; public class KeBen { p
-
用JAVA实现杨辉三角实例
这是我的第一篇文章,我的想法是把自己再学习的路上遇到的困难都给记录下来,一来是方便以后的自我复习,二来就是大家资源共享,帮助和我一样遇到困难的小伙伴们. 这是我遇到的第一个难题. 题目是: 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数.它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加. 输入包含一个数n.(1 <= n <= 34) 输出格式:n=5:数和数之间有空格 首先我们应该想着如何打印一个边长=n
-
Java算法实现杨辉三角的讲解
又写了个算法题,著名的杨辉三角,哈哈,直接进入主题吧! 先给大家简单介绍一下吧: 杨辉三角的每个数等于它上方两数之和. 在百度上找了张图给大家理解 大家可以自己分析一下,我直接上代码,在代码里面讲解 public class trangle { public static void main(String[] args) { int x=8; //我们先定义8行的数组,这里可以随意设置哦 int[][] arg=new int[x][x];//定义一个二维数组 for(int i=0;i<x;i
-
基于Java实现杨辉三角 LeetCode Pascal's Triangle
Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 这道题比较简单, 杨辉三角, 可以用这一列的元素等于它头顶两元素的和来求. 数学扎实的人会看出, 其实每一列都是数学里的排列组合, 第4行, 可以用 C30 =
-
基于Java实现杨辉三角 LeetCode Pascal's Triangle
Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 这道题比较简单, 杨辉三角, 可以用这一列的元素等于它头顶两元素的和来求. 数学扎实的人会看出, 其实每一列都是数学里的排列组合, 第4行, 可以用 C30 =
-
python实现杨辉三角的几种方法代码实例
方法一:迭代 def triangle_1(x): """ :param x: 需要生成的杨辉三角行数 :return: """ triangle = [[1], [1, 1]] # 初始化杨辉三角 n = 3 # 从第三行开始计数,逐行添加 while n <= x: for i in range(0, n-1): if i == 0: # 添加初始列表[1,1],杨辉三角每行的首位和末位必为1 triangle.append([1, 1
-
C++实现LeetCode(119.杨辉三角之二)
[LeetCode] 119. Pascal's Triangle II 杨辉三角之二 Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note that the row index starts from 0. In Pascal's triangle, each number is the sum of the two numbers directly
-
C++实现LeetCode(118.杨辉三角)
[LeetCode] 118.Pascal's Triangle 杨辉三角 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
随机推荐
- 编写你的shell其实很简单
- 突破Win 2003系统种种限制
- Spring 中使用Quartz实现任务调度
- Spring Boot JPA访问Mysql示例
- python使用paramiko实现远程拷贝文件的方法
- gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
- PHP统一页面编码避免乱码问题
- 简单介绍Python中的几种数据类型
- Android自定义View之酷炫数字圆环
- MySql删除和更新操作对性能有影响吗
- Android利用CountDownTimer实现点击获取验证码倒计时效果
- vue.js 表格分页ajax 异步加载数据
- Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
- asp 多关键词搜索的简单实现方法
- 酷炫!趣味十足的Linux命令
- 使用jQuery实现星级评分代码分享
- 2007年最挣钱十大创业领域...
- ASP.NET对无序列表批量操作的三种方法小结
- Code:findPosX 和 findPosY
- 新学到的一招之单空间绑多域名实现提速