package pascal // Triangle returns pascals triangle up to depth func Triangle(depth int) [][]int { var ret [][]int for currDepth := 0; currDepth < depth; currDepth++ { var newRow, prevRow []int // Each row is currDepth+1 long rowLength := currDepth + 1 // Rows start with a 1 newRow = append(newRow, 1) if currDepth > 0 { prevRow = ret[currDepth-1] } for i := 1; i < rowLength; i++ { if i == rowLength-1 { // Rows end with a 1 also newRow = append(newRow, 1) break } newRow = append(newRow, prevRow[i-1]+prevRow[i]) } ret = append(ret, newRow) } return ret }