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?

杨辉三角,我们知道v[i][j] = v[i-1][j-1] + v[i-1][j],于是,逆序相加法,可以防止值被覆盖,新的当前位置的值当前位置的值加上当前位置之前一个位置的值, v[i] = v[i] + v[i-1],这是参考的解法,我是没想到啦~~

 1 class Solution {
 2 public:
 3     vector<int> getRow(int rowIndex) {
 4         vector<int> vi(rowIndex + 1);
 5            vi[0] = 1;
 6         for (int i = 0; i <= rowIndex ; ++i)
 7         {
 8             for (int j = i; j > 0; --j)
 9             {
10                 vi[j] = vi[j] + vi[j-1];
11             }
12         }
13         return vi;
14     }
15 };

 

posted @ 2018-03-22 21:58  还是说得清点吧  阅读(84)  评论(0)    收藏  举报