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,
i = 1....开始
中间的元素[ i ] = 上面一行的元素[ i - 1] + 上面一行的元素[ i ]
运行时间:
代码:
public class PascalTriangle {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> result = new ArrayList<>();
if (numRows == 0) {
return result;
}
List<Integer> cur = new ArrayList<>();
List<Integer> pre = new ArrayList<>();
cur.add(1);
result.add(new ArrayList<>(cur));
pre = cur;
for (int i = 1; i < numRows; i++) {
cur = new ArrayList<>();
cur.add(1);
for (int j = 1; j < pre.size(); j++) {
cur.add(pre.get(j - 1) + pre.get(j));
}
cur.add(1);
result.add(new ArrayList<>(cur));
pre = cur;
}
return result;
}
}