求連續子串行的最大值

2021-08-31 04:50:09 字數 451 閱讀 9442

問題描述:

有一串數字(可正可負的int,放在陣列num裡),要求找到起始位置start和終止位置end,使得從start位置到end位置的所有數字之和最大,返回這個最大值max。

演算法思想:使用動態規劃。

設 f[x] 為以 a[x] 終止且包含 a[x] 的最大序列的和,有:

f[1] = a[1];

f[x+1] = f[x] > 0 ? f[x] + a[x+1] : a[x+1]

那麼最大子串行的和就是 f[1] .. f[n] 中最大的乙個。其演算法的時間複雜度為o(n),**實現如下:

void maxsubse(int a, int length) 

else

if (max > resultmax)

}}

求最大連續子陣列和的最大值

題目描述 給定乙個陣列a 0,n 1 求a的連續子陣列,使得該子陣列的和最大。eg 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 ...

2958 求上公升子串行和的最大值

單點時限 2.0 sec 記憶體限制 256 mb 由非負整數 bi 0 i乙個長度為 n 的序列 a0,a1,an 1,存在多種上公升子串行 ai0,ai1,aik 0 i0例如 序列 1,7,3,5,9,4,8 的上公升子串行有 1,7 3,5,8 1,3,5,9 等。這些上公升子串行中序列和最...

連續子串行和的最大值 動態規劃 python

如題 因為要求的是連續子串行和的最大值,所以分類應為c i 要不要i之前的序列 對於第i個元素,1 要i之前的序列,則table i1 c i 2 不要i之前的序列,則c i 取兩者裡邊的最大值給了table i numpy.argmax list 返回列表中最大元素的索引 詳解argmax def...