美文网首页
leetcode:118. Pascal's Triangle

leetcode:118. Pascal's Triangle

作者: 唐僧取经 | 来源:发表于2018-08-19 13:34 被阅读0次

    118. Pascal's Triangle

    Description

    Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.

    In Pascal's triangle, each number is the sum of the two numbers directly above it.

    Example:

    Input: 5
    Output:
    [
    [1],
    [1,1],
    [1,2,1],
    [1,3,3,1],
    [1,4,6,4,1]
    ]

    Answer

    package main
    
    import "fmt"
    
    func generate(numRows int) [][]int {
        //为0的时候,返回空
        if numRows == 0 {
            return [][]int{}
        }
        //返回的切片,先放一个切片
        ret := [][]int{[]int{1}}
        //创建第一个数
        if numRows == 1 {
            return ret
        }
        for i := 1; i < numRows; i++ {
            //定义临时的切片,代表每一行
            tmp := make([]int, i+1)
            tmp[0] = 1
            for j := 1; j < i; j++ {
                //下面这一行等于上面两个的和
                tmp[j] = ret[i-1][j-1] + ret[i-1][j]
            }
            tmp[i] = 1
            ret = append(ret, tmp)
        }
        return ret
    }
    
    func main() {
        fmt.Println(generate(5))
    }
    
    
    

    相关文章

      网友评论

          本文标题:leetcode:118. Pascal's Triangle

          本文链接:https://www.haomeiwen.com/subject/bssciftx.html