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?
Code:
1 vector<int> getRow(int rowIndex) { 2 vector<int>lastRow; 3 vector<int>cur; 4 5 if (rowIndex >= 0) 6 { 7 cur.push_back(1); 8 lastRow = cur; 9 10 for (int i = 1; i <= rowIndex; ++i) 11 { 12 cur.clear(); 13 for (int j = 0; j <= i; ++j) 14 { 15 if (j == 0) 16 cur.push_back(lastRow[0]); 17 else if (j==lastRow.size()) 18 cur.push_back(lastRow[j-1]); 19 else 20 cur.push_back(lastRow[j]+lastRow[j-1]); 21 } 22 lastRow = cur; 23 } 24 } 25 return lastRow; 26 }