118. Pascal's Triangle
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]
]
解题要点:
层层解法,从上到下走一遍,边走边算。在算每一层时,index0的位置和最尾部的位置都直接设为1,其余的根据上一层的两个数(当前和前一位)进行计算。
class Solution(object):
def generate(self, numRows):
"""
:type numRows: int
:rtype: List[List[int]]
"""
res = []
for i in range(numRows):
temp = [0] * (i+1)
for j in range(i + 1):
if j == 0 or j == i:
temp[j] = 1
else:
temp[j] = res[i-1][j] + res[i-1][j-1]
res.append(temp)
return res
Last updated
Was this helpful?