自己写的:
class Solution: def generate(self, numRows: int): # 初始化结果列表,包含帕斯卡三角形的前两行 li = [[1], [1, 1]] # 检查如果numRows为1或2,直接返回对应结果 if numRows == 1: return [[1]] if numRows == 2: return [[1], [1, 1]] # 如果numRows大于等于3 if numRows >= 3: target = 3 # 从第三行开始 while target <= numRows: # 创建一个临时列表,所有元素初始化为0 temp = [0] * target # 根据前一行赋值临时列表的首尾元素 temp[0] = li[target - 2][0] temp[-1] = li[target - 2][-1] # 使用前一行计算临时列表的中间元素 for i in range(1, target - 1): # 循环遍历位置在[1, target-2]之间的元素 temp[i] = li[target - 2][i - 1] + li[target - 2][i] # 将新生成的行添加到结果列表 li.append(temp) # 移动到下一行 target += 1 # 返回最终的结果列表 return li
gpt提供的:
class Solution: def generate(self, numRows: int): if numRows == 0: return [] result = [[1]] for i in range(1, numRows): row = [1] # 每行的第一个元素始终为1 for j in range(1, i): row.append(result[i - 1][j - 1] + result[i - 1][j]) row.append(1) # 每行的最后一个元素始终为1 result.append(row) return result
标签:return,leedcode,numRows,result,杨辉三角,append,row From: https://www.cnblogs.com/yyyjw/p/18029847