classSolution: defgenerate(self, numRows: int) -> List[List[int]]: if numRows == 0: return [] res = [[1]] for i in range(1, numRows): # 前一行从第二位开始相加,最后一个元素单独作为结果 new_list = [1] + [sum(res[-1][j:j + 2]) for j in range(i)] res.append(new_list) return res
classSolution: defgenerate(self, numRows: int) -> List[List[int]]: dp=[[0]*n for n in range(1,numRows+1)] for i in range(numRows): dp[i][0]=dp[i][-1]=1 for i in range(0,numRows): for j in range(i+1): if(dp[i][j]==0): dp[i][j]=dp[i-1][j-1]+dp[i-1][j] return dp
classSolution: defgenerate(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
classSolution: defgetRow(self, rowIndex: int) -> List[int]: if(rowIndex==0): return [1] res = [1,1] # 从第三行开始才有计算 for i in range(3, rowIndex + 2): cur = [0] * i cur[0] = cur[-1] = 1 for j in range(1, i-1): cur[j] = res[j - 1] + res[j] res = cur return res