http://oj.leetcode.com/problems/pascals-triangle-ii/
依然是关于杨辉三角的题,核心的公式就是 A i,j = A i-1,j + A i-1,j-1
注意,必须从后往前遍历,不能从前往后遍历。 对于一矢量 [1,2,1] 来讲。
从后往前遍历的结果是: [1,3,3]
从前往后遍历的结果是: [1,3,4]
AC代码:
class Solution {
public:
vector
getRow(int rowIndex) {
vector
result;
result.push_back(1);
if(rowIndex == 0) return result;
for(int i = 0; i < rowIndex; i++) {
for(int j = result.size(); j >= 1; j--) {
result[j] = result[j] + result[j-1];
}
result.push_back(1);
}
return result;
}
};
WA代码:
class Solution {
public:
vector
getRow(int rowIndex) {
vector
result;
result.push_back(1);
if(rowIndex == 0) return result;
for(int i = 0; i < rowIndex; i++) {
for(int j = 1; j < result.size(); j++) {
result[j] = result[j] + result[j-1];
}
result.push_back(1);
}
return result;
}
};