118 Pascal's Triangle - Easy

Problem:

Given an integer numRows, return the first numRows of Pascal's triangle.

In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:

Example 1:

Input: numRows = 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

Example 2:

Input: numRows = 1 Output: [[1]]

Constraints:

  • 1 <= numRows <= 30

Problem Analysis:

  • dynamic programming
  • Trick: add zero at the side

Solutions:

class Solution(object):
    def generate(self, numRows):
        """
        :type numRows: int
        :rtype: List[List[int]]
        """
        res = [[1]]

        for i in range(numRows - 1):
            # previous row, add 0 at the side for easy calculation
            temp = [0] + res[-1] + [0]
            row = []
            for j in range(len(res[-1])+1):
                row.append(temp[j] + temp[j+1])
            res.append(row)

        return res

Similar Questions

  • 119-pascals-triangle-ii119 Pascal's Triangle II - EasyProblem: Given an integer rowIndex, return the rowIndexth (0-indexed) row of the Pascal's triangle. In Pascal's triangle, each number is the sum of the two numbers directly above it as shown: Example 1: Input: rowIndex = 3 Output: \[1,3,3,1\] Example 2: Input: rowIndex = 0 Output: \[1\] Example 3: Input: rowIndex = 1 Output: \[1,1\] Constraints: * `0 List[int]: res = [[1]] for i in range(rowIndex): previous row, add 0 at the side for easy calculation te