虽然很简单,但我一直想用最节省空间的方法做,所以花了不少时间。
最开始的版本:
class Solution {
public:vector<int> getRow(int rowIndex) {vector<int> result{1};while(rowIndex-->0){vector<int> v;for(int i=0;i<=result.size();i++){if(i==0||i==result.size()) v.push_back(1);else v.push_back(result[i-1]+result[i]);}result=v;}return result;}
};
看了答案发现更聪明的版本,先预留位置,慢慢填充:
class Solution {
public:vector<int> getRow(int rowIndex) {vector<int> result(rowIndex+1);result[0]=1;for(int i=1;i<=rowIndex;i++){for(int j=i;j>0;j--){result[j]+=result[j-1];}}return result;}
};