Leetcode Note: Go - Pascals Triangle II

Pascal’s Triangle II - LeetCode
https://leetcode.com/problems/pascals-triangle-ii/

  • Go 言語で取り組んだメモ

所感

  • 前回のコードをカスタマイズすれば実現できそう

実装準備

func getRow(rowIndex int) []int {
    return []int{}
}

func main() { 
    rowIndex := 3 // [1,3,3,1]
    fmt.Println(getRow(rowIndex))
}

回答

func getRow(rowIndex int) []int {
    triangle := [][]int{}

    for i := 0; i <= rowIndex; i++ {
        for j := 0; j < i+1; j++ {
            if j == 0 {
                triangle = append(triangle, []int{1})
            } else {
                if j == i {
                    triangle[i] = append(triangle[i], 1)
                } else {
                    triangle[i] = append(triangle[i], triangle[i-1][j] + triangle[i-1][j-1])
                }
            }
        }
    }

    return triangle[rowIndex]
}
  • ループを回す回数を rowIndex にして、最後に算出した Row を return すれば OK
  • パスカルの三角形が分かっていれば簡単