0
点赞
收藏
分享

微信扫一扫

【杨辉三角 II(1025-go)】

年夜雪 2022-01-23 阅读 48

杨辉三角 II(1025-go)

//119. 杨辉三角 II
func getRow(rowIndex int) []int {
    res := make([][]int, rowIndex+1)
    for i := 0; i <= rowIndex; i++ {
        res[i] = make([]int, i+1)
        res[i][0] = 1
        res[i][i] = 1
    }
    for i := 1; i <= rowIndex; i++ {
        for j := i; j < i; j++ {
            res[i][j] = res[i-1][j] + res[i-1][j-1]
        }
    }
    return res[rowIndex]
}

//空间复杂度优化
func getRow11(rowIndex int) []int {
    // 第rowIndex行的数组长度为rowIndex+1
    res := make([]int, rowIndex+1)
    // 每一行的第一项都确定是1
    res[0] = 1
    // 从第二行开始遍历
    for i := 1; i < rowIndex+1; i++ {
        // 第i行的首尾项确定是1
        res[0] = 1
        res[i] = 1
        // 从第i行的倒数第二个开始遍历到第二个
        for j := i - 1; j >= 1; j-- {
            // 用上一行的值求出当前res[j]
            res[j] = res[j] + res[j-1]
        }
    }
    // 返回出第rowIndex行的数组
    return res
}
举报

相关推荐

0 条评论