rolling array ; triangle; from end to beginning add ; No aftereffect

class Solution {
public:
    vector<int> getRow(int k) {
    vector<int> vts;
    if(k == 0){
        vts.push_back(1);
        return vts;
    }
    if(k == 1){
        vts.push_back(1);
        vts.push_back(1);
        return vts;
    }
  
    for(int i = 0;i<k+1;++i)
    {
        if(i == 0 ||i == 1){
            vts.push_back(1);
        } else {// !!!!!
            vts.push_back(0);   
        } 
    }
  
    for(int p = 2;p<=k;++p){
        //for(int col = 1;col<=p;++col){
        for(int col = p;col>=1;--col){
            if(vts[col] == 0){
                vts[col] = 1;
            } else {
                vts[col] = vts[col]+vts[col-1];  
            }
        }
    }
  
    return vts;
}
};


for this one; we must add from the end to the beginning. 
if we add from the beginning to the end; 

for instance from 1,2,1 to 1,3,3,1 

if we add from beginning to the end;
we will get 
1,3,4,4; so it is wrong;
add from the ending will not influence the value behind; 
从前往后:
当前值的改变 会影响后面的值;
从后往前:

当前值的改变 不会影响后面的值;




================

无后效性是一个问题可以用 动态规划求解的标志之一。
它是这样一种性质:某阶段的状态一旦确定,则此后过程的演变不再受此前各种状态及决策的影响,简单的说,就是“未来与过去无关”,当前的状态是此前历史的一个完整总结,此前的历史只能通过当前的状态去影响过程未来的演变。具体地说,如果一个问题被划分各个阶段之后,阶段I中的状态只能由阶段I-1中的状态通过状态转移方程得来,与其它状态没有关系,特别是与未发生的状态没有关系。从图论的角度去考虑,如果把这个问题中的状态定义成图中的顶点,两个状态之间的转移定义为边,转移过程中的权值增量定义为边的权值,则构成一个有向无环加权图,因此,这个图可以进行“拓扑排序”,至少可以按它们拓扑排序的顺序去划分阶段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值