leetcode_109 Pascal Triangle II

题目分析:

  • 给定整数n,生成杨辉三角的第n行数据信息。

解题思路:

  • 依据杨辉三角性质求解

    本题较上一个题目主要区别在于本题只求单独某一行元素,此时相当将求二维信息转换为求一维信息。

    杨辉三角性质:

    1)杨辉三角第i行共有i+1个数据;其中第一个元素和最后一个元素值为1;

    2)第i行元素非第一个和最后一个元素值为肩上两个元素相加求得,当利用一个数组进行求解时,则对应计算公式为tri[j] = tri[j] + tri[j-1]。

  • 实现程序

    class Solution
    {
        public:
            vector<int> getRow1(int rowIndex)
            {
                vector<int> result;
                // 特殊情况处理 
                if (rowIndex < 0)
                    return result;
                // 定义一个初始数组,并初始化对应值为0 
                for (int i = 0; i <= rowIndex; i++)
                {
                    result.push_back(0); 
                }
                for (int j = 0; j <= rowIndex; j++)
                {
                    // 初始化每行第一个元素 
                    result[rowIndex] = 1;
                    // 计算每行中间元素,利用递推公式为tri[j] = tri[j-1] + tri[j] 
                    for (int k = rowIndex - 1; k > 0; k--)
                    {
                        result[k] = result[k] + result[k - 1];
                    }
                    // 初始化每行最后一个元素 
                    result[0] = 1;
                }
                // 返回最终结果 
                return result;
            } 
    };
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值