最大連續子陣列問題
參見描述的最大子串行之積問題
題目描述:給定乙個陣列,比如int arr = 求乙個連續的子陣列使得該連續的子陣列和最大
時間複雜度:我們介紹一種時間複雜度為o(n)的演算法
思路分析:首先,在我們從前往後遍歷該陣列的時候,對於陣列裡面的每乙個元素,有兩種選擇:一種是作為在其之前的子串行之中,一種是自己作為乙個新開的序列;如果原來的序列之和大於0,可以認為原來的序列之和對後續序列有增加作用的話,我們就可以將它新增到原來的序列當中,但是如果原來的序列之和已經等於0或者小於0的話,可以看書對後續序列之和只會起到削減的作用,這時候我們可以將新的元素作為其實序列的首元素,重新再增加乙個序列。
狀態方程:f[i] = max,result = max;
給出圖例分析:
* 動態規劃 實現最大子串行之和5*
@author曹洋6
*7*/8
public
class
test6 ;
11static
double arr1 = ;
1213
public
static
void
main(string args)
19/**
20* 遞推公式
21* f[i] = max
22*
@param
arr23
* @return
24*/
25static
int maxaddsubarray(int
arr)
31return
result;32}
3334
static
double maxmutsubarray(double
arr)
40return
result;41}
42 }
posted @
2018-12-02 19:00
風沙迷了眼 閱讀(
...)
編輯收藏
最大子串行和(動態規劃)
最近溫習和提公升一下演算法,發現了乙個很經典的問題 最大子串行和,看到這篇部落格,發現講的很容易理解,給大家分享一下。給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,...
動態規劃 最大連續子串行和 最大子矩陣
最大連續子串行和是動態規劃中最經典的問題之一。在乙個給定的序列中,找出乙個連續的子串行,使得這個連續的子串行的和最大,輸出這個最大的序列和。給出乙個整數序列s,其中有n個數,定義其中乙個非空連續子串行t中所有數的和為t的 序列和 對於s的所有非空連續子串行t,求最大的序列和。變數條件 n為正整數,n...
動態規劃 最大子串行
描述 1.從給定序列中找出連續最大子串行,滿足子串行的和為最大值,返回該最大值 2.從給定序列中找出連續最大子串行,滿足子串行的積為最大值,返回該最大值 思想 第一題首先申請乙個變數curmax表示當前子串行累計和,初始化為0,res表示當前所有子串行和的最大值,初始化為最小值int min。從序列...