Leetcode专题[数组]-118-杨辉三角

力扣链接:https://leetcode-cn.com/probl...
解题思路:
Leetcode专题[数组]-118-杨辉三角_第1张图片

                                    杨辉三角

这道题其实是对我来说非常有意义的题目,因为所有的算法到最后,可能都是数学模型的抽象后使用某种计算机语言作为载体翻译出来,做算法题跟读书的时候做数学题是没有什么区别的。然而谁让我数学很烂。。。
思路具体分析如下:

  1. 这里的杨辉三角可以认为是二维数组,行表示输入的行数,列是每行生成的元素,可以知道的是行数与输入有关,每列中包含的元素等于自己所处的列数(从1起始)
  2. 每一列的数字中,第一个和最后一个数字均为1(第一列既可以认为是第一个,同时也是最后一个),其余数字fi = fi-1 + fi-1
  3. 有了以上的分析,那么解法也就呼之欲出了
func yanghuiTriangle(numRows int) [][]int {
    res := make([][]int, numRows)
    for i := range  res {
        res[i] = make([]int, i+1)
        res[i][0] = 1
        res[i][i] = 1
        for j := 1; j < i; j++ {
            res[i][j] = res[i-1][j] + res[i-1][j-1]
        }
    }
    return res
}

你可能感兴趣的:(golang)