2021-10-09:杨辉三角。给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。力扣118。
福大大 答案2021-10-09:
自然智慧即可。arr[i][j]=arr[i-1][j-1]+arr[i-1][j]。当前元素=上+左上。
时间复杂度:O(N2)。
空间复杂度:O(N2)。
代码用golang编写。代码如下:
package main import "fmt" func main() { ret := generate(5) fmt.Println(ret) } func generate(numRows int) [][]int { ans := make([][]int, 0) for i := 0; i < numRows; i++ { ans = append(ans, make([]int, 0)) ans[i] = append(ans[i], 1) } for i := 1; i < numRows; i++ { for j := 1; j < i; j++ { ans[i] = append(ans[i], ans[i-1][j-1]+ans[i-1][j]) } ans[i] = append(ans[i], 1) } return ans }
执行结果如下:
左神java代码