class Solution {
public:
vector<int> getRow(int rowIndex) {
//迭代
if(rowIndex==0){//这里要有大括号。而且这里的终止条件rowIndex==0而不是1!!!
vector<int> result(1,1);//这里讲result初始化为1个1的vector
//result.resize(1);//这里的resize也就不需要了
return result;
}
vector<int> last = getRow(rowIndex-1);
vector<int> result(rowIndex+1);//初始化后的大小,等同于resize
//result.resize(rowIndex+1);
result[0] = result[rowIndex] = 1;
for(int i = 1; i < rowIndex; ++i){
result[i] = last[i-1] + last[i];
}
return result;
}
};
要求空间复杂度是O(k),常数空间复杂度,在原来的位置上修改,此时只能从右往左遍历
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> result(rowIndex+1, 1);
for(int i =0; i < rowIndex+1; ++i){
for(int j = i; j >=0; --j){
if(j == 0 || j==i) result[j] = 1;
else//这里的else必须要有的
result[j] += result[j-1];
}
}
return result;
}
};