计算杨辉三角第i行的值(滚动数组优化)

Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle.

Note that the row index starts from 0.

/* 输出杨辉三角
 *      1                    1
 *    1   1                  1  1
 *  1   2   1                1  2  1     显然只用计算对角线左下部分 即j<i部分
 *1   3   3   1              1  3  3  1  滚动数组优化 循环row-1次 每次循环时 a[i] += a[i-1]
 *                           1  4  6  4  1
 *
 * */
class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<int> ret(rowIndex+1, 1);
        for(int i=2;i<=rowIndex;i++){
            for(int j=i-1;j>=1;j--){//先计算右边的值 保证左边的值还没被覆盖 反方向覆盖 这里和01背包中一维数组优化类似的原理
                ret[j] += ret[j-1];
            }
        }
        return ret;
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值