题目:
其实和118的题目差不多,只不过这个是输出指定行号的vector,对之前的代码小小修改就可以达到目的。下面是我的解法:
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> ans;
vector<int> temp;
rowIndex = rowIndex + 1;
if(rowIndex < 2) {
for(int i=0; i<rowIndex; i++)
ans.push_back(1);
} else {
ans.push_back(1);
ans.push_back(1);
for(int i=2; i<rowIndex; i++) {
temp = ans;
for(int j=1; j<i; j++) {
ans[j] = ans[j] + temp[j-1];
}
ans.push_back(1);
}
}
return ans;
}
};
但是看到了另外一个人写的代码,很简单,关键的是没有占很大的内存:
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> row(rowIndex+1,0);
row[0]=1;
for(int i=1;i<=rowIndex;i++)
for(int j=i;j>=1;j--)
row[j]=row[j-1]+row[j];
return(row);
}
};
其实这宗解法也是利用它的一些性质特点,我的那种方法就是直接上的。