GivennumRows, generate the firstnumRowsof Pascal's triangle.
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
if (numRows < 1) {
return res;
}
List<Integer> first = new ArrayList<>();
first.add(1);
res.add(first);
for (int i = 1; i < numRows; i++) {
List<Integer> row = new ArrayList<>();
row.add(1);
for (int j = 1; j <= i - 1; j++) {
row.add(res.get(i - 1).get(j - 1) + res.get(i - 1).get(j));
}
row.add(1);
res.add(row);
}
return res;
}
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
if (numRows < 1) {
return res;
}
ArrayList<Integer> last = new ArrayList<>();
last.add(1);
res.add(last);
for (int i = 1; i < numRows; i++) {
ArrayList<Integer> newRow = new ArrayList<>();
newRow.add(1);
for (int j = 1; j < last.size(); j++) {
int sum = last.get(j) + last.get(j - 1);
newRow.add(sum);
}
newRow.add(1);
res.add(newRow);
last = newRow;
}
return res;
}