演算法學習 最大連續子陣列

2021-07-24 19:37:44 字數 607 閱讀 7233

題目

給定乙個陣列a[0,...,n-1],求a的連續子陣列,使得孩子陣列的和最大。

例如陣列:1,-2,3,10,-4,7,2,-5的最大子陣列是:3,10,-4,7,2

分析

記s[i]為以a[i]為結尾的陣列中和最大的子陣列

則:s[i+1]=max(s[i]+a[i+1],a[i+1])

s[0]=a[0]

遍歷i:0<=i<=n-1

動態規劃:最優子問題

時間複雜度:o(n)

#include "stdafx.h"

#include #include int maxsubarray(const int* a, int size)

else

result = (sum > result) ? sum : result;

} return result;

}int _tmain(int argc, _tchar* argv)

; int m = maxsubarray(a, sizeof(a)/sizeof(int));

std::cout<

最大連續子陣列

對於乙個給定的陣列a,求 a中連續子陣列,使得該陣列的和最大 例如 a 1,2,3,10,4,7,2,5 結果 3 10 4 7 2 暴力法 遍歷求a的所有子陣列,求和最大的 分治法 陣列的和最大那個陣列只會出現在以下三種情況中 a.存在於陣列下標從0到mid中,其中mid為陣列長度 length ...

最大連續子陣列

問題描述,給定乙個陣列a 0,1,n 1 求出a的連續陣列,使得該子陣列的和最大。例如 陣列a 1,2,3,10,4,7,2 則最大的子陣列為 3,10,4,7,2 解法 1.暴力法 2.分治法 3.動態規劃法 一 暴力發 分析 直接求解a i,j 的值,0 i n i j n,i,i 1,j 1的...

最大連續子陣列

題目 給乙個陣列,返回它的最大連續子串行的和 子向量的長度至少是1 例如 連續子向量的最大和為8 從第0個開始,到第3個為止 使用動態規劃 f i 以array i 為末尾元素的子陣列的和的最大值,子陣列的元素的相對位置不變 f i max f i 1 array i array i res 所有子...