博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode#118. Pascal's Triangle(杨辉三角)
阅读量:5037 次
发布时间:2019-06-12

本文共 1328 字,大约阅读时间需要 4 分钟。

题目描述

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

image

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 5输出:[     [1],    [1,1],   [1,2,1],  [1,3,3,1], [1,4,6,4,1]]

思路

对任意的n>0有

f(1, n)=1,(n>0)

f(1, 2)=1,(n=2)

f(i,j) = f(i-1, j-1)+f(i, j-1),i>2,j>2

代码实现

package Array;import java.util.ArrayList;import java.util.Collections;import java.util.List;/** * 118. Pascal's Triangle(杨辉三角) * 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 */public class Solution118 {    public static void main(String[] args) {        Solution118 solution118 = new Solution118();        int numRows = 1;        List
> res = solution118.generate(numRows); System.out.println(res); } /** * 对任意的n>0有 * f(1, n)=1,(n>0) * f(1, 2)=1,(n=2) * f(i,j) = f(i-1, j-1)+f(i, j-1),i>2,j>2 * * @param numRows * @return */ public List
> generate(int numRows) { if (numRows == 0) { return Collections.emptyList(); } List
> res = new ArrayList<>(); for (int i = 0; i < numRows; i++) { List
sub = new ArrayList<>(); for (int j = 0; j <= i; j++) { if (j == 0 || j == i) { sub.add(1); } else { List
upSub = res.get(i - 1); sub.add(upSub.get(j - 1) + upSub.get(j)); } } res.add(sub); } return res; }}

转载于:https://www.cnblogs.com/wupeixuan/p/9543916.html

你可能感兴趣的文章
算法时间复杂度
查看>>
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
[转载]JDK的动态代理深入解析(Proxy,InvocationHandler)
查看>>
centos7 搭建vsftp服务器
查看>>
RijndaelManaged 加密
查看>>
Android 音量调节
查看>>
HTML&CSS基础学习笔记1.28-给网页添加一个css样式
查看>>
windows上面链接使用linux上面的docker daemon
查看>>
Redis事务
查看>>
Web框架和Django基础
查看>>
python中的逻辑操作符
查看>>
CSS兼容性常见问题总结
查看>>
HDU 1548 A strange lift (Dijkstra)
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
C# 启动进程和杀死进程
查看>>
tcp实现交互
查看>>
IIS的各种身份验证详细测试
查看>>
JavaScript特效源码(3、菜单特效)
查看>>
聊聊、Zookeeper Linux 单服务
查看>>