博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode——Pascal's Triangle
阅读量:6553 次
发布时间:2019-06-24

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

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]]
原题链接:https://oj.leetcode.com/problems/pascals-triangle/

题目 :给定n,生成n行的帕斯卡三角形。

思路:帕斯卡三角形 也就是 杨辉三角形,依据数学知识,知当中每一行的数字代表的是 (a+b)^n 的系数。于是此题能够转化为求组合数 C(n,k)。把每一行的系数算出来就可以。

public static List
> generate(int numRows) { List
> list = new ArrayList
>(); if (numRows < 1) return list; for (int i = 0; i < numRows; i++) { List
li = new ArrayList
(); for (int j = 0; j <= i; j++) { li.add(Integer.valueOf(cnk(i, j) + "")); } list.add(li); } return list; } //求组合数 public static BigInteger cnk(int n, int k) { BigInteger fenzi = new BigInteger("1"); BigInteger fenmu = new BigInteger("1"); for (int i = n - k + 1; i <= n; i++) { String s = Integer.toString(i); BigInteger stobig = new BigInteger(s); fenzi = fenzi.multiply(stobig); } for (int j = 1; j <= k; j++) { String ss = Integer.toString(j); BigInteger stobig2 = new BigInteger(ss); fenmu = fenmu.multiply(stobig2); } BigInteger result = fenzi.divide(fenmu); return result; }

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
IT兄弟连 Java Web教程 经典案例2
查看>>
微信分享到朋友圈,怎么自定义分享的标题,图片,内容?
查看>>
PMP-4整合管理
查看>>
mysql 日志
查看>>
php连接mysql
查看>>
salt 001
查看>>
shell文本行截取子串
查看>>
什么是你的核心竞争力之一?
查看>>
MMC卡原理和操作分析
查看>>
MYSQL在一个字段值前面加字符串
查看>>
Linux 端口号划分
查看>>
测试邮箱配置语句
查看>>
Shell脚本实现自动输入密码登录服务器
查看>>
我的友情链接
查看>>
shell——tee的用法
查看>>
内部类
查看>>
hibernate-hql
查看>>
Replica sets架构复制集(2)详解
查看>>
centos安装mentohust锐捷认证程序
查看>>
卸载vsftpd
查看>>