
LeetCode118. 杨辉三角Golang版
发布日期:2021-05-08 06:09:42
浏览次数:18
分类:精选文章
本文共 849 字,大约阅读时间需要 2 分钟。
LeetCode118. 杨辉三角Golang版
题目描述
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]思路分析
观察杨辉三角的特点:
- 如果是前2行,所有元素都为1
- 第2行以后,第一个和最后一个元素为1
- 第2行以后,yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j]
代码
func generate(numRows int) [][]int { if numRows == 0 { return nil } yanghui := make([][]int,numRows) for i := 0; i < numRows; i++ { // 此处需要对yanghui[i]进行make分配 yanghui[i] = make([]int,i+1) for j := 0; j <= i; j++ { if i < 2 { yanghui[i][j] = 1 } else { if j == 0 || j == i { yanghui[i][j] = 1 } else { yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j] } } } } return yanghui}