118. pascal’s triangle 实现 参考

Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.

In Pascal’s triangle, each number is the sum of the two numbers directly above it.

  • Example:

Input: 5

Output:

1
2
3
4
5
6
7
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]

实现帕斯卡三角.

实现

  • java

递归实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result = new ArrayList<>();
for(int i = 0; i < numRows; i++) {
result = result(result);
}
return result;
}

public List<List<Integer>> result(List<List<Integer>> result) {
int size = result.size();
if(size == 0) {
List<Integer> ele = new ArrayList<>();
ele.add(1);
result.add(ele);
return result;
}
List<Integer> lastEle = result.get(size - 1);
int lastSize = lastEle.size();
List<Integer> e = new ArrayList<>();
e.add(1);
for(int i = 0; i < lastSize - 1; i++) {
e.add(lastEle.get(i) + lastEle.get(i + 1));
}
e.add(1);
result.add(e);
return result;
}

参考