118. 杨辉三角
给定一个非负整数numRows
,生成杨辉三角的前numRows
行。
![](https://www.hgnulb.cn/cnblogs-theme/image/blogimage/118-Pascal's Triangle.gif)
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
Java 实现
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
for(int i=1;i<=numRows;i++){
List<Integer> list = new ArrayList<Integer>();
for(int j=1;j<=i;j++){
if (j==1||j==i) { // 当列为 1,或者 行==列 的时候都为 1
list.add(1);
}else{
list.add(result.get(i-2).get(j-1)+result.get(i-2).get(j-2));
}
}
result.add(list);
}
return result;
}
}
测试代码
import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<List> generate(int numRows) {
List<List> result = new ArrayList<List>();
for(int i=1;i<=numRows;i++){
List list = new ArrayList();
for(int j=1;j<=i;j++){
if (j1||ji) { // 当列为 1,或者 行==列 的时候都为 1
list.add(1);
}else{
list.add(result.get(i-2).get(j-1)+result.get(i-2).get(j-2));
}
}
result.add(list);
// 测试代码
System.out.println(list);
}
return result;
}
// 测试主程序
public static void main(String[] args) {
Solution solution = new Solution();
solution.generate(5);
}
}
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
</div>
**参考资料**
* [https://leetcode.com/problems/pascals-triangle/discuss/38141/My-concise-solution-in-Java](https://leetcode.com/problems/pascals-triangle/discuss/38141/My-concise-solution-in-Java)
* [https://leetcode-cn.com/problems/pascals-triangle/description/](https://leetcode-cn.com/problems/pascals-triangle/description/)
* [https://leetcode.com/problems/pascals-triangle/discuss/?orderBy=most_votes](https://leetcode.com/problems/pascals-triangle/discuss/?orderBy=most_votes)