力扣链接:https://leetcode-cn.com/probl...
解题思路:
杨辉三角
这道题其实是对我来说十分有意义的题目,因为所有的算法到最初,可能都是数学模型的形象后应用某种计算机语言作为载体翻译进去,做算法题跟读书的时候做数学题是没有什么区别的。然而谁让我数学很烂。。。
思路具体分析如下:
- 这里的杨辉三角能够认为是二维数组,行示意输出的行数,列是每行生成的元素,能够晓得的是行数与输出无关,每列中蕴含的元素等于本人所处的列数(从1起始)
- 每一列的数字中,第一个和最初一个数字均为1(第一列既能够认为是第一个,同时也是最初一个),其余数字fi = fi-1 + fi-1
- 有了以上的剖析,那么解法也就跃然纸上了
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}