Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.
In Pascal’s triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 5 Output: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
Python
class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: List[List[int]] """ rows_list = [] for i in range(1, numRows+1): rows_list.append(self.return_row(i)) return rows_list def return_row(self, row_num): row_list = [] for i in range(1, row_num+1): row_list.append(self.return_result(i,row_num)) return row_list def return_result(self, a, row_num): return self.factorial(row_num-1)/(self.factorial(a-1)*self.factorial(row_num-a)) def factorial(self, n): return reduce(lambda x, y: x * y, [1] + range(1, n + 1))