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]
]
题解
a1.
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans;
for(int i = 0; i < numRows; ++i){
ans.push_back(vector<int>(i + 1, 1));
for(int j = 1; j < i; ++j){
ans[i][j] = ans[i - 1][j] + ans[i - 1][j - 1];
}
}
return ans;
}
};
a2.
class Solution(object):
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
ans = [[1]]
for i in range(1, numRows):
ans += [map(lambda x, y: x + y, ans[-1] + [0], [0] + ans[-1])]
return ans