public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>(numRows);
for (int i = 0; i < numRows; i++) {
List<Integer> row = new ArrayList<>(i + 1);
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
row.add(1);
} else {
row.add(res.get(i - 1).get(j - 1) + res.get(i - 1).get(j));
}
}
res.add(row);
}
return res;
}
public List<Integer> getRow(int rowIndex) {
List<Integer> res = new ArrayList<>(rowIndex + 1);
res.add(1);
for (int i = 1; i <= rowIndex; i++) {
res.add(0);
for (int j = i; j >= 0; j--) {
if (j == 0 || j == i) {
res.set(j, 1);
} else {
res.set(j, res.get(j) + res.get(j - 1));
}
}
}
return res;
}