本文共 684 字,大约阅读时间需要 2 分钟。
要解决给定一个非负索引 k,返回杨辉三角的第 k 行的问题,我们可以利用杨辉三角的性质,即每一行的数是其左右邻居的和。通过动态计算组合数,我们可以直接生成每一行的数值。
杨辉三角的每一行可以看作是组合数的序列。第 k 行的数是组合数 C(k, 0), C(k, 1), ..., C(k, k)。为了生成第 k 行,我们可以从左到右依次计算每个位置的值。具体来说,第 i 个数可以通过前一个数乘以 (k - i + 1) 再除以 i 来计算。
func getRow(rowIndex int) []int { yanghui := make([]int, rowIndex + 1) yanghui[0] = 1 for i := 1; i <= rowIndex; i++ { yanghui[i] = yanghui[i-1] * (rowIndex - i + 1) / i } return yanghui} rowIndex + 1 的数组 yanghui,并将第一个元素初始化为 1。yanghui[i] = yanghui[i-1] * (rowIndex - i + 1) / i 来计算每个位置的值。这种方法通过直接计算组合数,避免了传统杨辉三角生成方式中的复杂循环和覆盖问题,实现简洁高效。
转载地址:http://nlcwz.baihongyu.com/