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] ]
对于杨辉三角,前两行不太会处理,只能采用最蠢的办法写出代码来。
每一行第一个数和最后一个数为1。
代码如下:
public static List<List<Integer>> generate(int numRows) {
List<List<Integer>> triangle = new LinkedList<List<Integer>>();
if (numRows <= 0) return triangle;
List<Integer> lineNew1 = new ArrayList<Integer>();
lineNew1.add(1);
triangle.add(lineNew1);
if (numRows == 1) return triangle;
List<Integer> lineNew2 = new ArrayList<Integer>();
lineNew2.add(1);
lineNew2.add(1);
triangle.add(lineNew2);
if (numRows == 2) return triangle;
for (int i = 2; i < numRows; i++) {
List<Integer> lineNew = new ArrayList<Integer>();
List<Integer> line = triangle.get(i - 1);
for (int j = 0; j < i - 1; j++) {
int num = line.get(j) + line.get(j + 1);
lineNew.add(j, num);
}
lineNew.add(0, 1);
lineNew.add(i, 1);
triangle.add(lineNew);
}
return triangle;
}