首页 > 其他 > 详细

118. 杨辉三角

时间:2020-04-02 22:49:38      阅读:68      评论:0      收藏:0      [点我收藏+]

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 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;
}

 

118. 杨辉三角

原文:https://www.cnblogs.com/gongkiro/p/12622839.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!