算法设计与分析——动态规划——最大字段和问题
動(dòng)態(tài)規(guī)劃解決問(wèn)題是自底向上。原問(wèn)題的規(guī)模是n個(gè)元
素。這n個(gè)元素不好考慮,我們先考慮n-1個(gè)元素,這樣還不好考
慮,我們考慮n-2個(gè)元素,這樣依次遞減,最后問(wèn)題規(guī)模變成一個(gè)
元素。但是我們發(fā)現(xiàn),在遞減的過(guò)程中間,子問(wèn)題的最優(yōu)解包含
在原問(wèn)題的最優(yōu)解之中,而且子問(wèn)題的解還有一些是重復(fù)的。
因此,使用動(dòng)態(tài)規(guī)劃來(lái)解決這個(gè)問(wèn)題。
思想:
對(duì)字段序列進(jìn)行一個(gè)循環(huán),
如果之前的序列b>0,則加入這個(gè)新的序列之中;
如果之前的序列b<=0,則重新設(shè)置字段的序列和為nums[i];
如果之前的序列加上nums[i],的值大于之前的最大序列和,則更新最大序列和;
我們要寫出一個(gè)遞歸方程。我們?cè)O(shè)置一個(gè)數(shù)組b來(lái)存放最優(yōu)解,首先將b[1]=a[1],a存放的是我們的n個(gè)元素。第i個(gè)元素,他的狀態(tài)就是將他放不放到數(shù)組b中(和之前的有些像)。因此,遞歸方程就是:b[i]=max{b[i-1]+a[i],a[i]}
總結(jié)
以上是生活随笔為你收集整理的算法设计与分析——动态规划——最大字段和问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 学习宝电脑版下载安装步骤
- 下一篇: 灵犀语音助手app如何使用?灵犀语音助手