/*下面為"分"*/
center =
(left + right)/2
;/*遞迴求得兩邊的最大和*/
maxleftsum =
divideandconquer
(list, left, center)
; maxrightsum =
divideandconquer
(list, center+
1, right)
;/*求跨分界線的最大子列和*/
maxleftbordersum =0;
leftbordersum =0;
/*從中線向左掃瞄*/
for(i=center; i>=left; i--
)
maxrightbordersum =0;
rightbordersum =0;
/*從中線向右掃瞄*/
for(i=center+
1; i<=right; i++
)/*下面返回"治"的結果*/
return
max3
(maxleftsum, maxrightsum, maxleftbordersum+maxrightbordersum);}
intmaxsubseqsum3
(int list,
int n)
intmain()
int max =
maxsubseqsum3
(list, n)
;printf
("%d\n"
, max)
;return0;
}
01 複雜度1 最大子列和問題
給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。輸入格式 輸入第1行給出正整數 k 100000 第2行給出k個整數,其間以空格分隔。輸出格式...
01 複雜度1 最大子列和問題
01 複雜度1 最大子列和問題 給定k 個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。輸入第1行給出正整數k 100 000 第2行給出 k個整數...
01 複雜度1 最大子列和問題
01 複雜度1最大子列和問題 20分 給定kk 個整數組成的序列,連續子列 被定義為n i 1 n jn j 其中 1 le i le j le k1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列...