2,题目思路
该题目可以定义一个二维向量,然后直接套用杨辉三角的计算过程,最后返回对应的向量即可。
还有一种节省空间的办法,因为题目只要求给出给定行的数值,因此可以直接定义一个一维的向量,长度和所要返回的向量长度是相等的。所有的计算操作在该向量上完成即可,最后的到的结果就是所要返回的结果。
3,程序源码
方法1:
class Solution {
public:
vector<int> getRow(int rowIndex) {
int rowNum = rowIndex+1;
vector<vector<int>> num(rowNum);
for(int i=0;ifor(int j = 0;j<=i;j++)
{
if(j == 0 || j == i)
num[i].push_back(1);
else
num[i].push_back(num[i-1][j-1] + num[i-1][j]);
}
return num[rowIndex];
}
};
方法2:
class Solution {
public:
vector<int> getRow(int rowIndex) {
int rowNum = rowIndex+1;
vector<int>res (rowNum);
res[0] = 1;
for(int i=1;ifor(int j = i;j>=1;j--)
{
res[j] = res[j] + res[j-1];
}
return res;
}
};