題目:
Pascal's Triangle II
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?
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> tmp, result;
if(rowIndex < 0)
return result;
result.push_back(1);
for(int i=1;i<=rowIndex;i++)
{
tmp.push_back(1); //每行的頭數字
for(int j=1;j<i;j++)
tmp.push_back(result[j-1] + result[j]); //每行中間的數字
tmp.push_back(1); //每行的尾數字
result = tmp;
tmp.clear();
}
return result;
}
};
class Solution {
public:
vector<int> getRow(int rowIndex) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<int> myvector, tmpvector;
if(rowIndex<0)
return myvector;
myvector.push_back(1);
for(int i=1;i<=rowIndex;i++)
{
tmpvector.push_back(1);
for(int j=1;j<i;j++)
tmpvector.push_back(myvector[j-1]+myvector[j]);
tmpvector.push_back(1);
myvector = tmpvector;
tmpvector.clear();
}
return myvector;
}
};