每日一练(3):杨辉三角

Posted by didphp.com

说明

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623—-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
杨辉三角

实现

实现方式至少 10 种以上

package algorithm

// YanghuiTriangle 杨辉三角
func YanghuiTriangle(numRows int) [][]int {
    var numRowsArr [][]int
    for i := 0; i < numRows; i++ {
        if i == 0 {
            currentNumRowsArr := []int{1}
            numRowsArr = append(numRowsArr, currentNumRowsArr)
        } else {
            var numColsArr []int
            for j := 0; j < i+1; j++ {
                if j == 0 {
                    numColsArr = append(numColsArr, 1)
                } else {
                    if j > len(numRowsArr[i-1])-1 {
                        numColsArr = append(numColsArr, 1)
                    } else {
                        numColsArr = append(numColsArr, numRowsArr[i-1][j-1]+numRowsArr[i-1][j])
                    }
                }
            }
            numRowsArr = append(numRowsArr, numColsArr)
        }
    }
    return numRowsArr
}