原文
Given numRows, generate the first numRows of Pascal’s triangle.
For example, given numRows = 5,
Return
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
题目意思
生成指定行数的Pascal’s Triangle。
题目分析
总结这个图形的规律,利用数学归纳法推导。设返回的变量类型为如下,实例pastri,
IList<IList<int>> pastri;
已知 pastri[0] = new List<int>();
pastri[1] = new List<int>(){1};
若已知 pastri[i] = new List<int>{1,a1,...,ai-1,ai}; //共i个数
则,pastri[i+1] = new List<int>{1,1+a1,...,ai-1+ai,1}; //共i+1个数
代码实现
public class Solution
{
public IList<IList<int>> Generate(int numRows)
{
IList<IList<int>> rtn = new List<IList<int>>();
for(int i=0; i<numRows;i++)
{
IList<int> ints = new List<int>();
ints.Add(1);
for(int j=1;j<i;j++)
{
IList<int> intsPreRow = rtn[i-1];
ints.Add(intsPreRow[j-1]+intsPreRow[j]);
}
if(i>0)
ints.Add(1);
rtn.Add(ints);
}
return rtn;
}
}