DataStructure/Others

Pascal's Triangle

ND Paul Kim 2018. 11. 18. 20:19

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]
]


My solution:

class Solution:
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
result = list()

if numRows > 0:
result.append([1])
else:
return result

for j in range(numRows - 1):
tmp = list()
index = len(result) - 1
for i in range(j + 2):
if i == 0:
tmp.append(result[index][i])
continue

if i == len(result):
tmp.append(result[index][i - 1])
break

add = result[index][i - 1] + result[index][i]
tmp.append(add)

result.append(tmp)

return result