本关任务:在数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字的乘积最小,路径上的每一步都只能往左下或右下走,只需求出最小的乘积,不需要给出具体路径。 2 3 8 1 2 2 4 7 1 4 8 5 2 6 5的;Python代码
时间: 2023-12-29 13:02:36 浏览: 87
```python
triangle = [
[2],
[3, 8],
[1, 2, 2],
[4, 7, 1, 4],
[8, 5, 2, 6, 5]
]
# 初始化最小乘积数组,初始值为每个位置上的数字
min_product = [[num for num in row] for row in triangle]
# 从倒数第二行开始向上遍历
for i in range(len(triangle)-2, -1, -1):
for j in range(len(triangle[i])):
# 在左下和右下两个方向中选择最小的乘积
min_product[i][j] = triangle[i][j] * min(min_product[i+1][j], min_product[i+1][j+1])
print("最小乘积为:", min_product[0][0])
```
阅读全文