Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal’s triangle.

Note that the row index starts from 0.


In Pascal’s triangle, each number is the sum of the two numbers directly above it.

Example:

Input: 3
Output: [1,3,3,1]

Follow up:

Could you optimize your algorithm to use only O(k) extra space?

Accepted

Python

 
class Solution(object):
    def getRow(self, rowIndex):
        """
        :type rowIndex: int
        :rtype: List[int]
        """
        rowIndex +=1
        row_list = []
        for i in range(1, rowIndex+1):
            row_list.append(self.return_result(i,rowIndex))
        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))

发表评论