在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/pascals-triangle
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
用动态规划的思想组建模型
dp[i][j] = dp[i-1][j -1]+dp[i-1][j]
即可得出解题思路
std::vector<std::vector<int>> CLeetCode_Solution::generate(int numRows) { vector<std::vector<int>> ret; if (numRows == 0) return ret; for (int i = 0; i < numRows; i++) { //将第二层vec全部初始化为1,避开处理边界的1 vector<int> ret_sec(i + 1, 1); //从1开始处理,并且不处理最后一个 for (int j=1; j < i;++j) { ret_sec[j] = ret[ret.size() - 1][j - 1] + ret[ret.size() - 1][j]; } ret.push_back(ret_sec); } return ret; }