杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。 在欧洲,帕斯卡(1623—-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。 帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
1 2 3 4 5 6 7 8 9
| 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
var generate = function(numRows) { const result = [];
for (let i = 0; i < numRows; i ++) { const subArr = []; for (let j = 0; j <= i; j++) { if (j > 0 && j < i) { subArr.push(result[i-1][j-1] + result[i-1][j]); } else { subArr.push(1); } } result.push(subArr); }
return result;
};
|
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
var getRow = function (rowIndex) { if (rowIndex === 0) { return [1] } else if (rowIndex === 1) { return [1, 1] } else { let index = 1 let result = [1] for (let i = 0; i < rowIndex; i++) { index = index * (rowIndex - i) / (i + 1); result.push(index) } return result } };
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
var getRow = function(rowIndex) { if (rowIndex < 0) return [] if (rowIndex === 0) return [1] let preRow = getRow(rowIndex - 1) let result = [] for (let i = 0; i <= rowIndex; i++) { if (i === 0 || i === rowIndex) result[i] = 1; else result[i] = preRow[i - 1] + preRow[i] } return result };
|
最后更新时间: