動態規劃 最大子陣列和問題

2021-07-16 09:40:43 字數 1089 閱讀 7474

有整型陣列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 ...