Pascal's Triangle leetcode java(杨辉三角)
题目:
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]
]
题解:
既然讲到了Pascal‘s Triangle,即杨辉三角。那么就先去Wikipedia上面复习一下杨辉三角吧:
”杨辉三角形,又称賈憲三角形、帕斯卡三角形、海亚姆三角形,是二项式係數在的一种写法,形似三角形。
杨辉三角形第n层(顶层称第0层,第1行,第n层即第n+1行,此处n为包含0在内的自然数)正好对应于二项式展开的系数。例如第二层1 2 1是幂指数为2的二项式
展开形式
的系数。
杨辉三角的性质:
- 楊輝三角以正整數構成,數字左右对称,每行由1开始逐渐变大,然后变小,回到1。
- 第
行的数字个数为
个。 - 第
行的第
個數字為組合數
。 - 第
行数字和为
。 - 除每行最左側與最右側的數字以外,每个数字等于它的左上方與右上方两个数字之和(也就是說,第
行第
個數字等於第
行的第
個數字與第
個數字的和)。這是因为有組合恒等式:
。可用此性质写出整个楊輝三角形。
” 根据上面那个图,我们可以发现,第一行和第二行都由1组成。其他行的起始和结束都是1.内容由上一行相邻两个数组和组成。由此我们可以写出代码。
代码如下:
1 public class Solution {
2 public static List<List<Integer>> generate(int numRows) {
3 List<List<Integer>> res = new ArrayList<List<Integer>>();
4
5 if(numRows == 0)
6 return res;
7
8 for(int j = 0;j<numRows;j++){
9 List<Integer> row = new ArrayList<Integer>();
row.add(1);
for(int i=1;i<j;i++){//除去第一行和第二行才进这个循环
List<Integer> prevRow = res.get(j-1);//当前行的上一行
int temp = prevRow.get(i-1)+prevRow.get(i);
row.add(temp);
}
if(j!=0)//除了第一行,末尾接个1
row.add(1);
res.add(row);
}
return res;
}
Pascal's Triangle leetcode java(杨辉三角)的更多相关文章
- LeetCode Pascal's Triangle II (杨辉三角)
题意:给出杨辉三角的层数k,返回最后一层.k=0时就是只有一个数字1. 思路:滚动数组计算前一半出来,返回时再复制另一半.简单但是每一句都挺长的. 0ms的版本: class Solution { p ...
- LeetCode 119. Pascal's Triangle II (杨辉三角之二)
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...
- 【LeetCode】Pascal's Triangle II (杨辉三角)
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3 ...
- 每天一道LeetCode--119.Pascal's Triangle II(杨辉三角)
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [1,3, ...
- LeetCode 118. 杨辉三角
118. 杨辉三角 给定一个非负整数numRows,生成杨辉三角的前numRows行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例 输入: 5 输出: [ [1], [1,1], [1,2 ...
- LeetCode:杨辉三角【118】
LeetCode:杨辉三角[118] 题目描述 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: ...
- Java实现 LeetCode 119 杨辉三角 II
119. 杨辉三角 II 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 进阶: ...
- Java实现 LeetCode 118 杨辉三角
118. 杨辉三角 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出: [ [1], [1,1], ...
- LeetCode(119. 杨辉三角 II)
问题描述 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 进阶: 你可以优化你的 ...
随机推荐
- android onPause OnSavedInstance
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 活动 的 在暂停时候 这个方法 执行结束后,才会执行 下一个活动的 在创建时候 的那个 ...
- luoguP3175 [HAOI2015]按位或 min-max容斥 + 高维前缀和
考虑min-max容斥 \(E[max(S)] = \sum \limits_{T \subset S} min(T)\) \(min(T)\)是可以被表示出来 即所有与\(T\)有交集的数的概率的和 ...
- 一、java概述
一.概述 java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的技术体系. 提供了完整的开发和跨平台部署的支持环境.用途广泛. 结构严谨.面向对象.摆脱硬件平台的束缚. ...
- 精益软件研发的秘密 IT大咖说 - 大咖干货,不再错过
精益软件研发的秘密 IT大咖说 - 大咖干货,不再错过 http://www.itdks.com/dakashuo/new/dakalive/detail/3662
- 使用Puppeteer进行数据抓取(四)——图片下载
大多数情况下,图片获取并不是很困难的事情,获取图片的url,然后模拟浏览器请求即可.但是,有的时候这种方法往往无法生效,常见的情形有: 动态图片,每次获取都是一个新的,例如图片验证码,重新获取时是一个 ...
- 采用ASP.NET IIS 注册工具 (Aspnet_regiis.exe)对web.config实行本地加密
加密原因:我们通常将一些重要的配置信息写在Web.config里面,其中数据库链接就是这样的信息.将这些数据直接明文显示,显然不太安全. 工具: 采用ASP.NET IIS 注册工具 (Aspnet_ ...
- hdu1465(放错信 错排公式)
Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易 ...
- Java基础加强总结(三)——代理(Proxy)
一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的. 动态代理技术就是用来产生一个对象的代理对 ...
- 让AngularJS的controllers之间共享数据
如何让controller之间共享数据呢?大致是让不同controller中的变量指向同一个实例. 通过service创建一个存放共享数据的对象. .service("greeting&qu ...
- Python可视化库
转自小小蒲公英原文用Python可视化库 现如今大数据已人尽皆知,但在这个信息大爆炸的时代里,空有海量数据是无实际使用价值,更不要说帮助管理者进行业务决策.那么数据有什么价值呢?用什么样的手段才能把数 ...
展开的系数。例如第二层1 2 1是幂指数为2的二项式
展开形式
的系数。
”
根据上面那个图,我们可以发现,第一行和第二行都由1组成。其他行的起始和结束都是1.内容由上一行相邻两个数组和组成。由此我们可以写出代码。