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;
    }
}

测试代码

```java 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)

相关文章: