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     }

 

你可能感兴趣的:(pascal)