力扣链接: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
}