Pascal's Triangle II

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     }

 

posted @ 2015-06-20 16:19  Rosanne  阅读(180)  评论(0编辑  收藏  举报