PTA 7 1 最大子列和問題 20分

2021-10-02 09:58:07 字數 813 閱讀 4416

給定k個整數組成的序列,「連續子列」被定義為,其中 1≤i≤j≤k。「最大子列和」則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。

本題旨在測試各種不同的演算法在各種資料情況下的表現。各組測試資料特點如下:

輸入第1行給出正整數k (≤100000);第2行給出k個整數,其間以空格分隔。

在一行中輸出最大子列和。如果序列中所有整數皆為負數,則輸出0。

6

-2 11 -4 13 -5 -2

20
思路:將序列分為左右兩部分,分別遞迴求得左部分的最大序列和、有部分的最大序列和,在求得橫跨左部分和右部分的最大序列和(從mid出發分別向左向右,兩者之和即為這部分),最後將三部分比較得出最大者,即為整個輸入的最大序列和。

在遞迴期間都是巨集觀上的,每個遞迴步都是這樣的求和方式,不用考慮左部分求得的是不是最大的這類問題。

#includeusing namespace std;

int three_max(int a,int b,int c)

int max_subsequence(int sum,int left,int right)

for(int i=mid+1;i<=right;++i)

return three_max(max_border_left+max_border_right,max_left,max_right);

}int main()

cout

}

PTA 7 1 最大子列和問題

給定k個整數組成的序列,最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。本題旨在測試各種不同的演算法在各種資料情況下的表現。各組測試資料特點如下 資料1 與樣例等價,測試基本正確性 資料2 102個隨機整數 ...

7 1 最大子列和問題 20 分

給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。本題旨在測試各種不同的演算法在各種資料情況下的表現。各組測試資料特點如下 資料1 與樣例等價,...

7 1 最大子列和問題 20分

7 1 最大子列和問題 20分 給定k個整數組成的序列,連續子列 被定義為,其中 1 i j k。最大子列和 則被定義為所有連續子列元素的和中最大者。例如給定序列,其連續子列有最大的和20。現要求你編寫程式,計算給定整數序列的最大子列和。本題旨在測試各種不同的演算法在各種資料情況下的表現。各組測試資...