陣列中子陣列和的最大值

2021-06-02 10:30:22 字數 930 閱讀 1783

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

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

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

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

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

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

那麼最大的子陣列為3, 10, -4, 7, 2,

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

所有的東西都在以下倆行,

即:b  :  0  1  -1  3  13   9  16  18  7  

sum: 0  1   1  3  13  13  16  18  18

其實演算法很簡單,當前面的幾個數,加起來後,b<0後,

把b重新賦值,置為下乙個元素,b=a[i]。

當b>sum,則更新sum=b;

若b//*

//* function : maxsubarray

//* description : the max sub array

//* parameters : type name description

//* return : type values description

//* created date/by : 2011/12/06 perfect2011

//*

//* revision history:v1.0

#include #include using namespace std;

int max(int array,int n)

return max;

}int main(int argc, char *argv)

; cout<

陣列中子陣列最大值 分治思想

include using namespace std 求陣列中子陣列的最大值 引數1 陣列,引數2 陣列起始位置,引數3 陣列尾位置的下乙個位置 int maxsum int int,int int selmaxvalue int,int,int 選擇最大值 int find max crossi...

獲取陣列中子串乘積的最大值

題目 給定乙個陣列,例如arr 那個8和4相乘得到32,是連續數相乘得到的最大值,得到該值即可。解答 注意此過程的三種情況即可,最大數成為最大,最小數變成最大,當前數最大。時間複雜度o n public static double getmax double arr double max arr 0...

找出乙個陣列中子陣列和的最大值

讓我們看這樣乙個陣列 1,2,3,4,5,6,7 很明顯,子陣列和的最大值是8,這個子陣列是 3,4,5,6 那麼我們怎麼找到最大值是多少呢?我們假設從第一位開始對每一位加和,當加到3的時候,我們發現,之前的1 2 1,如果加上3的話等於2,還不如直接從3開始大一些,這時候我們果斷拋棄3前面的計算結...