119 Pascal's Triangle II - Easy
Problem:
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 <= rowIndex <= 33
Follow up: Could you optimize your algorithm to use only O(rowIndex)
extra space?
Problem Analysis:
- slight modification from 118-pascals-triangle118 Pascal's Triangle - EasyProblem: 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): """
Solutions:
class Solution:
def getRow(self, rowIndex: int) -> List[int]:
res = [[1]]
for i in range(rowIndex):
# 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[-1]
Similar Questions
118-pascals-triangle118 Pascal's Triangle - EasyProblem: 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): """