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?
Code:
<span style="font-size:14px;">class Solution {
public:
vector<int> getRow(int rowIndex) {
if (rowIndex == 0) return vector<int>(1, 1);
if (rowIndex == 1) return vector<int>(2, 1);
vector<int> results(rowIndex+1, 1);
long long n = rowIndex;
int i = 1;
for (; i <= rowIndex/2; ++i) {
results[i] = n;
n = n*(rowIndex-i)/(i+1);
}
for (i = rowIndex-1; i > rowIndex/2; --i)
results[i] = results[rowIndex-i];
return results;
}
};</span>