118. Pascal's Triangle

2022-07-19  本文已影响0人  sarto

题目

生成杨辉三角

解析

  1. 每一层宽度 + 1
  2. 每一层首尾填充 1
  3. 每一层需要填充的个数为 n-2
  4. 值计算为 lv[n][i] = lv[n-1][n-1] + lv[n]
  5. 对称点计算 lv[n][n-i] = lv[n][i]

伪代码

代码

func generate(numRows int) [][]int {
    triangle := make([][]int, numRows)
    triangle[0] = []int{1}
    for i:=1; i<numRows; i++ {
        triangle[i] = make([]int, i+1)
        
        for k:=1; k<=i/2; k++ {
            triangle[i][k] = triangle[i-1][k-1] + triangle[i-1][k]
            triangle[i][i-k] = triangle[i][k]
        } 
        triangle[i][0] = 1
        triangle[i][i] = 1
    }
    return triangle
}
image.png
上一篇 下一篇

猜你喜欢

热点阅读