力扣题库刷题笔记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 行。我们可以使用递归、动态规划或数学公式来解决这个问题。
每个元素都是其左边和右边元素之和,我们可以使用这些方法来计算每个元素。
最终答案是使用数学公式来计算每个元素,因为它是最简单也是最有效的方法。