rolling array ; triangle; from end to beginning add ; No aftereffect
来源:互联网 发布:戴尔公司网络品牌策划 编辑:程序博客网 时间:2024/06/03 17:02
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;
}
};
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中的状态通过状态转移方程得来,与其它状态没有关系,特别是与未发生的状态没有关系。从图论的角度去考虑,如果把这个问题中的状态定义成图中的顶点,两个状态之间的转移定义为边,转移过程中的权值增量定义为边的权值,则构成一个有向无环加权图,因此,这个图可以进行“拓扑排序”,至少可以按它们拓扑排序的顺序去划分阶段。
0 0
- rolling array ; triangle; from end to beginning add ; No aftereffect
- Together to the end, from a new beginning,CSDN and github
- openstack rolling upgrade from havana to icehouse
- 快慢指针- Add to List 19. Remove Nth Node From End of List
- Beginning Ubuntu Linux: From Novice to Professional
- Beginning Ruby : From Novice to Professional
- Apress.Beginning.Ruby.From.Novice.to.Professional
- Beginning C# 2008: From Novice to Professional
- Beginning C# Objects From Concepts to Code
- Beginning Python: From Novice to Professional
- Beginning J2EE 5: From Novice to Professional
- Beginning JSP 2: From Novice to Professional
- Beginning Apache Struts: From Novice to Professional
- Beginning Ubuntu Linux: From Novice to Professional
- Beginning REALbasic: From Novice to Professional
- Beginning GIMP: From Novice to Professional
- Beginning Ruby: From Novice to Professional
- Beginning XSLT 2.0: From Novice to Professional
- [备注] py2exe
- 线程不同步的原因,如何同步,简单的防止程序多开
- JavaLearning:JAVA IO 之打印流
- 12.5 Longest Substring without Repeating Characters
- 的撒个发送到
- rolling array ; triangle; from end to beginning add ; No aftereffect
- 撒的发士大夫不会舒服
- 发生的分公司的富豪榜
- to the max
- Centos一键升级PHP到最新版,如php5.3,php5.4
- 大半夜不睡觉瞎胡闹
- cocoa 自动键值观察(KVO)--笔录
- How do I add a tool tip to a span element?
- [JAVA] 定义函数时功能的细分;