26 lines
442 B
Go
26 lines
442 B
Go
package q118
|
|
|
|
func generate(numRows int) [][]int {
|
|
buf := make([]int, numRows*(1+numRows)/2)
|
|
p := 0
|
|
take := func(n int) []int {
|
|
ret := buf[p : p+n]
|
|
p = p + n
|
|
return ret
|
|
}
|
|
|
|
ret := make([][]int, 0, numRows)
|
|
|
|
for i := 1; i <= numRows; i++ {
|
|
row := take(i)
|
|
row[0] = 1
|
|
row[len(row)-1] = 1
|
|
for j := 1; j < len(row)-1; j++ {
|
|
row[j] = ret[i-2][j-1] + ret[i-2][j]
|
|
}
|
|
ret = append(ret, row)
|
|
}
|
|
return ret
|
|
}
|
|
|
|
var _ = generate
|