01 複雜度1 最大子列和問題

2021-10-08 02:20:15 字數 1662 閱讀 3447

/*下面為"分"*/

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。現要求你編寫程式,計算給定整數序列的最大子列...