有整型陣列int a=,求這個陣列的最大子陣列和來手寫一下求取最大子陣列和序列的過程,用m[i]表示第i個數所對應的最大子陣列和
s[0] = 1 ;
m[0] = 1 ;
s[1] = max = -1 ;
m[1] = max = 1 ;
s[2] = max = 3 ;
m[2] = max = 3 ;
s[3] = max = 13 ;
m[3] = max = 13 ;
s[4] = max = 9 ;
m[4] = max = 13 ;
s[5] = max = 16 ;
m[5] = max = 16 ;
s[6] = max = 18 ;
m[6] = max = 18 ;
s[7] = max = 13 ;
m[7] = max = 18 ;
我們求解的問題也就是求m[7]的值,m[i]就是這個問題的狀態,可以得到狀態轉移方程為:m[i] = max,m[i-1]}。其中m[i]表示當前位置i之前所有數的最大子陣列和,s[i]則用於儲存最大子陣列的起始位置到當前位置之間所有元素的和。
public
class
maxsubsum ;
maxsubsum(a);
}public
static
void
maxsubsum(int a) = %d ;\n",i,i-1,i,i,s);
m = maxof(m,s);
system.out.printf("m[%d] = max = %d ; \n",i,i,i-1,m);
system.out.println("");
}system.out.println("max final : "+m);
}public
static
intmaxof(int a,int b)
}
the end. 最大子陣列問題 動態規劃
昨天偶然上csdn,看到這個問題,學習了一種複雜度為o n 的演算法,可以計算array的最大子陣列問題。思路就是從0 length,將array累加起來,同時用乙個變數max記錄最大值,如果sum max,就更新max,如果sum 0 就令sum 0 為什麼是這樣呢,sum 0的話,前面的就可以直...
動態規劃 陣列最大子陣列和
問題描述 給定乙個整數陣列a 0 n 求陣列a的子陣列,使其元素和為最大。問題分析 方法一 可以用普通的方法列舉所有的子陣列,然後求出最大的子陣列和,時間複雜度為o n n 方法二 問題描述符合動態規劃最優子結構的要求。設b i 表示以a i 結尾 的子陣列的最大子段和,即 b i max,其中0 ...
動態規劃 陣列最大子陣列和
問題描述 給定乙個整數陣列a 0 n 求陣列a的子陣列,使其元素和為最大。問題分析 方法一 可以用普通的方法列舉所有的子陣列,然後求出最大的子陣列和,時間複雜度為o n n 方法二 問題描述符合動態規劃最優子結構的要求。設b i 表示以a i 結尾 的子陣列的最大子段和,即 b i max,其中0 ...