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?
for this problem, I just use an value called temp to store the change between the upper row and the nearest bottom row.
For better understanding, you can draw a picture for it
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> f(rowIndex+1);
if(rowIndex < 0)
return f;
f[0] = 1;
int temp = 1;
for(int i = 1;i<= rowIndex;i++)
for(int j = 0;j<=i;j++)
if(j == 0)
f[j] = 1;
else if(j == i)
f[j] = 1;
else
{
f[j] = temp +f[j];
temp = f[j] - temp;
}
return f;
}
};