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