给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
代码题解:
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>>ret(numRows);
for(int i=0;i<numRows;i++)
{
ret[i].resize(i+1);这里使用resize函数设置大小,即n行共n+1列
ret[i][0]=ret[i][i]=1;
for(int j=1;j<i;j++){
ret[i][j] = ret[i - 1][j] + ret[i - 1][j - 1];
}
}
return ret;
}
};
有没有大佬可以解答一下为什么第一行这里已经给了二维数组的定义,紧接着又要定义二维数组啊,第3行代码不是定义的二维数组吗,还是什么?编程小白刚刷题啥也不会,我也不知道这是不是定义的二维数组,就是好奇为什么下边还要再定义一个ret,救救孩子吧!!!