【发布时间】:2019-04-17 14:23:40
【问题描述】:
我正在努力解决问题Pascal's Triangle - LeetCode
给定一个非负整数numRows,生成帕斯卡三角形的第一个numRows。
在帕斯卡三角形中,每个数字都是其正上方的两个数字之和。
示例:
Input: 5 Output: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
我的解决方案:
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 的 Testcase 没通过:
numRows = 0,预期 [] 但输出 None。
我曾经仔细考虑过,如果numRows为0,则表示该行不存在,而不是存在一行但元素为零。
numRow == 0 与 numRow = None 相同,与 my_salary = 0(空闲工作)和 my_salary ==None(无工作)不同
明确地说,工资可以是负数,但在我们应该花费数年时间将图片渲染为后坑的情况下,在当前技术下不能得到负数。
怎么能理解默认设置numRows = 0却得到[]
【问题讨论】:
-
您的问题是什么? [] 表示没有行的三角形。 [[]] 将是一个空行的三角形。
-
哦,是的,谢谢。 @andrew.punnett