Problem Description:
Given an index k, return the kth 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?
题目大意:
给定一个数字N,返回帕斯卡三角的第N行结果。只能使用 O(k)的额外空间。
Solutions:
用循环累加的办法生成对应行即可。
Code in C++:
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> row(1,1);
if(rowIndex<1) return row;
for(int i=1;i<=rowIndex;i++)
{
int prev1=row[0];
int prev2;
for(int j=1;j<i;j++)
{
prev2=row[j];
row[j]+=prev1;
prev1=prev2;
}
row.push_back(1);
}
return row;
}
};
近期评论