问题描述
给定一个正整数 n
,要求找出杨辉三角中第 n
行的数字列表。题目链接:点我
样例输入输出
输入:3
输出:[1,3,3,1]
输入:0
输出:[1]
问题解法
观察杨辉三角每一行的数字,可以发现其数字呈现以下规律:1
、n
、n(n-1)/2
、n(n-1)(n-2)/(2*3)
、n(n-1)(n-2)(n-3)/(2*3*4)
、…、1
,所以可以根据此直接算出每一行中的每个数字。代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Solution { public List<Integer> getRow(int rowIndex) { List<Integer> result = new ArrayList<>(rowIndex + 1); result.add(1); long prev = 1; for (int i = 0; i < rowIndex; i++) { prev = prev * (rowIndex - i) / (i + 1); result.add((int) prev); }
return result; } }
|