Description:
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]
]
Solution:
杨辉三角。
import java.util.*;
public class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> list = new ArrayList<List<Integer>>();
if (numRows == 0)
return list;
LinkedList<Integer> array = new LinkedList<Integer>();
LinkedList<Integer> neoArray = new LinkedList<Integer>();
array.add(1);
list.add(new ArrayList<Integer>(array));
if (numRows == 1)
return list;
array.add(1);
list.add(new ArrayList<Integer>(array));
if (numRows == 2)
return list;
int pre, cur;
for (int i = 3; i <= numRows; i++) {
Iterator<Integer> ite = array.iterator();
pre = 1;
neoArray = new LinkedList<Integer>();
neoArray.add(1);
ite.next();
while (ite.hasNext()) {
cur = ite.next();
neoArray.add(cur + pre);
pre = cur;
}
neoArray.add(1);
list.add(new ArrayList<Integer>(neoArray));
array = neoArray;
}
return list;
}
}