-
杨辉三角
思想
将杨辉三角存储在一个二维数组中,但这个二维数组每一行的列数不等。
假设row的索引从0开始:
第0行有col=0的元素。
第1行有col=0,col=1的元素。
第2行有col=0,col=1,col=2的元素。
第row行有col<=row的元素。
对于每一行开始和结束的元素,值都为1。
对于每一行中间第i个元素,等于上一行的第i-1个元素和第i个元素值的和。java
class Solution {
public List<Integer> getRow(int rowIndex) {
//这里rowIndex索引是从0开始的,创建数组时要+1
Integer[][] triangle=new Integer[rowIndex+1][];
//为每一行的列数赋值
for(int row=0;row<=rowIndex;row++){
//第0行有1列,第1行有2列...
triangle[row]=new Integer[row+1];
//为每一列赋值
for(int col=0;col<=row;col++){
//如果是第一个或者最后一个元素,赋值为1
if(col==0||col==row)
triangle[row][col]=1;
else
triangle[row][col]=triangle[row-1][col-1]+triangle[row-1][col];
}
}
//循环完了row=rowIndex
return Arrays.asList(triangle[rowIndex]);
}
}
- javascript
/**
* @param {number} rowIndex
* @return {number[]}
*/
var getRow = function(rowIndex) {
//定义一个rowIndex+1行的数组。
var triangle=new Array(rowIndex+1);
//数组里面每一行再放不同大小的数组
for(var row=0;row<=rowIndex;row++){
//第0行,1个元素;第1行,2个元素
triangle[row]=new Array(row+1);
//为该行的每一个元素赋值
for(var col=0;col<=row;col++){
if(col==0||col==row)
triangle[row][col]=1;
else
triangle[row][col]=triangle[row-1][col-1]+triangle[row-1][col];
}
}
return triangle[rowIndex];
};