python给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
时间: 2023-12-10 11:39:25 浏览: 44
好的,我可以为您提供一个 Python 的解法。
杨辉三角是一个数字三角形,其第 n 行的数字由组合数 C(n, k) 构成。可以使用递归或动态规划来生成杨辉三角。下面是使用动态规划的解法:
```python
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
if numRows == 0:
return []
# 初始化第一行
triangle = [[1]]
for i in range(1, numRows):
# 当前行的长度为 i+1
row = [0] * (i+1)
# 第一个和最后一个元素为 1
row[0], row[-1] = 1, 1
# 计算中间的元素
for j in range(1, i):
row[j] = triangle[i-1][j-1] + triangle[i-1][j]
triangle.append(row)
return triangle
```
运行结果:
```python
>>> s = Solution()
>>> s.generate(5)
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
```
该算法的时间复杂度为 O(numRows^2),空间复杂度为 O(numRows^2)。
相关推荐
![text/html](https://img-home.csdnimg.cn/images/20210720083451.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)