题意:输出杨辉三角形第row行的所有数据。
题解:0:1
1:1 1
2:1 2 1
3:1 3 3 1
4:1 4 6 4 1
5:1 5 10 10 5 1
.....................................................
首先要想知道第row行的数据,必须得知道前row-1行的所有数据,而第0行和第1行的数均为1,设计一个双层循环,外层循环记录每层的所有数据,内层循环更新第row行的数据,因为a[i][j]=a[i-1][j]+a[i-1][j-1],即必须知道上一层同列数据和前一列数据,因此需要逆着更新。更新完第j个,就往前走,第j个就不需要用了。
vector<int> getRow(int rowIndex){
vector<int>vec(rowIndex+1,1);
for (int i = 2; i <= rowIndex; i++){
for (int j = i-1; j>0;j--){
vec[j] = vec[j]+vec[j-1];
}
}
return vec;
}