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 };