118:列出杨辉三角形所有层
119:列出杨辉三角形指定层
根据杨辉三角形公式,可得出
result[col]=result[col-1]*(rowIndex-col+1)/col
118代码:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> triangle;
int i,j,s;
for(i =1;i<=numRows;i++,s=1)
{
vector<int> row(i,1);
for(j=1;j<=i-2;j++)
{
s=(i-j)*s/j;
row[j]=s;
}
triangle.push_back(row);
}
return triangle;
}
119代码:(需要注意测数据可能很大,相乘后超出int范围,所以需要使用到unsigned long)
vector<int> getRow(int rowIndex) {
vector<int> row(rowIndex+1,1);
int s=1;
for(int j=1;j<=rowIndex/2;j++)
{
s=(unsigned long)(rowIndex+1-j)*s/j;
row[j]=row[rowIndex-j]=s;
}
return row;
}