当前位置:实例文章 » 其他实例» [文章]力扣题库刷题笔记118--杨辉三角

力扣题库刷题笔记118--杨辉三角

发布人:shili8 发布时间:2025-02-24 04:02 阅读次数:0

**力扣题库刷题笔记118 -- 杨辉三角**

**一、问题描述**

杨辉三角是由多个行组成的二维数组,每行元素都是从上一行元素中计算出来的。每个元素都是其左边和右边元素之和。

例如,第一行只有一个元素1,第二行有两个元素1 和1,第三行有三个元素1、2 和1,依此类推。

**二、问题要求**

给定一个整数 n,返回杨辉三角的第 n 行。

**三、解决方案**

###3.1 使用递归我们可以使用递归来计算每个元素。每个元素都是其左边和右边元素之和。

def getRow(n):
 if n ==0:
 return [1]
 prev_row = getRow(n -1)
 curr_row = []
 for i in range(len(prev_row) +1):
 if i ==0 or i == len(prev_row):
 curr_row.append(1)
 else:
 curr_row.append(prev_row[i -1] + prev_row[i])
 return curr_row


###3.2 使用动态规划我们可以使用动态规划来计算每个元素。每个元素都是其左边和右边元素之和。

def getRow(n):
 if n ==0:
 return [1]
 row = [1] * (n +1)
 for i in range(2, n +1):
 for j in range(1, i):
 row[j] += row[j -1]
 return row


###3.3 使用数学公式我们可以使用数学公式来计算每个元素。每个元素都是其左边和右边元素之和。

import mathdef getRow(n):
 row = [math.comb(n, i) for i in range(n +1)]
 return row


**四、总结**

本题目要求我们计算杨辉三角的第 n 行。我们可以使用递归、动态规划或数学公式来解决这个问题。

每个元素都是其左边和右边元素之和,我们可以使用这些方法来计算每个元素。

最终答案是使用数学公式来计算每个元素,因为它是最简单也是最有效的方法。

相关标签:笔记
其他信息

其他资源

Top