LeetCode118. 楊輝三角(Python)
阿新 • • 發佈:2020-12-07
1、題目描述
https://leetcode-cn.com/problems/pascals-triangle/
給定一個非負整數numRows,生成楊輝三角的前numRows行。在楊輝三角中,每個數是它左上方和右上方的數的和。
輸入: 5
輸出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
2、程式碼詳解
當前一行只比上一行多了一個元素,最最關鍵的一點:本行元素等於上一行元素往後錯一位再逐個相加
只要對最後一行單獨處理:最後一行首、尾分別新增一個零然後對應位置求和就可以得到新的一行
https://www.runoob.com/python3/python3-func-zip.html
from typing import List class Solution: def generate(self, numRows: int) -> List[List[int]]: if numRows == 0: return [] res = [[1]] while len(res) < numRows: newRow = [a+b for a, b in zip([0]+res[-1], res[-1]+[0])] res.append(newRow) return res numRows = 5 s = Solution() print(s.generate(numRows))