题目描述
Given an index k, return the k th row of the Pascal's triangle.
For example, given k = 3,
Return[1,3,3,1].
Note:
Could you optimize your algorithm to use only O(k) extra space?
注意边界问题!!!输出第k行的数组,注意是从0行开始数的!!!
实现代码:
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<vector<int>> result;
vector<int> temp;
temp.push_back(1);
result.push_back(temp);
if(rowIndex==0) return result[rowIndex];
temp.push_back(1);
result.push_back(temp);
if(rowIndex==1) return result[rowIndex];
for(int i=2;i<=rowIndex;i++) //此处必须遍历到rowIndex;
{
vector<int> solu(i+1,1); //为第i行创建一个容量为0~i的容器;
for(int j=1;j<i;j++) //最前最后都为1;省去j=0和j=i;
{
solu[j] = result[i-1][j-1]+result[i-1][j];
}
result.push_back(solu);
}
return result[rowIndex];
}
};