Python 生成帕斯卡三角形的角案例

Python 生成帕斯卡三角形的角案例,python,algorithm,Python,Algorithm,我正在努力解决这个问题 给定一个非负整数numRows,生成Pascal三角形的第一个numRows 在帕斯卡三角形中,每个数字都是其正上方两个数字的总和 例如: 我的解决方案: class Solution: def __init__(self): self.res = [[]] def generate(self, numRows: int) -> 'List[List[int]]': #base case if num

我正在努力解决这个问题

给定一个非负整数numRows,生成Pascal三角形的第一个numRows

在帕斯卡三角形中,每个数字都是其正上方两个数字的总和

例如:

我的解决方案:

class Solution:
    def __init__(self):
        self.res = [[]]
    def generate(self, numRows: int) -> 'List[List[int]]':
        #base case 
        if numRows == None: return None 
        if numRows == 0: return None
        pt = []
        for i in range(1, numRows+1):
            row = [1] * i
            pt.append(row)
        if numRows <=2: return pt

        #recur relations 
        for i in range(2, numRows): #start from row  3
            for j in range(1, len(pt[i])-1):#column, 
                #logging.debug(f"i:{i}, i-1:{i-1}, j:{j}, j-1:{j-1}")
                pt[i][j] = pt[i-1][j-1] + pt[i-1][j]
        return pt
不幸的是,未能通过leetcodes的测试用例:

numRows=0,应为[],但输出无

我曾经仔细考虑过,如果numRows是0,这意味着行不存在,而不是存在一行但元素为零

numRow==0与numRow=None相同,不同于我的\u薪水=0自由工作和我的\u薪水==None无工作

明确地说,薪水可以是负数,但在目前的技术条件下,当我们需要花费数年的时间才能把一张照片渲染成一个黑洞时,就不能得到一个负数


如何理解默认设置numRows=0,但获取[]

在您的示例中,有一个外部列表包围了所有内部列表中的数字行。即使没有行,外部列表也将始终存在。它始终是一个包含numRows元素的列表,因此如果numRows==0,则它是一个包含0个元素的列表


基本上只需在开始时删除两个if numRows==检查,它就应该通过测试用例。

您的问题是什么?[]表示没有行的三角形。[[]将是一个有一个空行的三角形。哦,是的,谢谢@安德鲁·潘内特
class Solution:
    def __init__(self):
        self.res = [[]]
    def generate(self, numRows: int) -> 'List[List[int]]':
        #base case 
        if numRows == None: return None 
        if numRows == 0: return None
        pt = []
        for i in range(1, numRows+1):
            row = [1] * i
            pt.append(row)
        if numRows <=2: return pt

        #recur relations 
        for i in range(2, numRows): #start from row  3
            for j in range(1, len(pt[i])-1):#column, 
                #logging.debug(f"i:{i}, i-1:{i-1}, j:{j}, j-1:{j-1}")
                pt[i][j] = pt[i-1][j-1] + pt[i-1][j]
        return pt