找出最大子陣列

2021-06-20 00:32:33 字數 762 閱讀 7357

求子陣列的最大和

題目:輸入乙個整形陣列,陣列裡有正數也有負數。

陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。

求所有子陣列的和的最大值。要求時間複雜度為o(n)。

例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2,

因此輸出為該子陣列的和18。

#include struct subarray;

struct subarray searchsubarray(int array, int n)else

if(bor.max > max.max)

}return max;

}main();

struct subarray re = searchsubarray(a, 8);

printf("max.s = %d, max.e = %d, max.max = %d\n", re.s, re.e, re.max);

}

思想很簡單,如果你搜尋到素組的位置n,最大子陣列有三種可能,其一可能在0到n-1個陣列中(不包含邊界n-1),其二可能在部分在0到n-1段陣列中(包含n-1),其三可能在後半段陣列中。所以對於當前搜尋的陣列0到n-1必須儲存兩個子陣列,既當前最大子陣列和包含邊界的當前最大子陣列,這樣遍歷一邊陣列後,就可以得到最大子陣列。這個思想網上其他部落格有很多介紹的,可以多看幾篇其他部落格進行深入理解。

最大子陣列

1.問題描述 問題 乙個有n個整數元素的一維陣列 a 0 a 1 a 2 a n 1 這個陣列中子陣列之和的最大值是多少?該子陣列是連續的。例如 陣列 1,2,3,5,3,2 返回8 陣列 0,2,3,5,1,2 返回9。網上有稱之為最大子串行和,亦有稱連續子陣列最大和。個人覺得叫最大子串行和不太妥...

最大子陣列

給定乙個整數陣列,找到乙個具有最大和的子陣列,返回其最大和。樣例1 輸入 2,2,3,4,1,2,1,5,3 輸出 6 解釋 符合要求的子陣列為 4,1,2,1 其最大和為 6。樣例2 輸入 1,2,3,4 輸出 10 解釋 符合要求的子陣列為 1,2,3,4 其最大和為 10。要求時間複雜度為o ...

最大子陣列

import math 暴力 defforce array list 暴力取得最大子陣列 param array 引數陣列 return 最大的連續和 for i in range len array max num array i for j in range i 1 len array ifsu...