滚动数组(空间优化)
给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:
输入: rowIndex = 3 输出: [1,3,3,1]
示例 2:
输入: rowIndex = 0 输出: [1]
示例 3:
输入: rowIndex = 1 输出: [1,1]
提示:
0 <= rowIndex <= 33
进阶:
你可以优化你的算法到 O(rowIndex) 空间复杂度吗?
优化前:
class Solution {
public:vector<int> getRow(int rowIndex) {int nums[34][34];for (int i = 0; i <= rowIndex; i++) {for (int j = 0; j < i + 1; j++) {if (j == 0 || j == i) {nums[i][j] = 1;} else {nums[i][j]=nums[i-1][j]+nums[i-1][j-1];}}}vector<int> ret;for(int i = 0;i <= rowIndex;i++){ret.push_back(nums[rowIndex][i]);}return ret;}
};优化后:
class Solution {
public:vector<int> getRow(int rowIndex) {int arr[2][34];int now=1;int pre=0;arr[pre][0]=1;for(int i = 0;i<=rowIndex;i++){for(int j = 0;j<=i;j++){if(j==0||j==i){arr[now][j]=1;}else{arr[now][j]=arr[pre][j]+arr[pre][j-1];}}pre^=1;now^=1;} vector<int> ret;for(int j = 0;j<=rowIndex;j++){ret.push_back(arr[pre][j]);} return ret; }
};在遇到我们不需要使用前面几行的数据时,我们可以使用滚动数组,就是在两行之间来回交替的数组
