乙個陣列有 N 個元素,求連續子陣列的最大和

2021-09-29 13:07:38 字數 565 閱讀 9980

輸入描述:

輸入為兩行。 第一行乙個整數n(1 <= n <= 100000),表示一共有n個元素 第二行為n個數,即每個元素,每個

整數都在32位int範圍內。以空格分隔。

輸出描述:

所有連續子陣列中和最大的值。

示例1:

輸入3 -1 2 1輸出3

我們用pos代表即將要加的數,sum從0開始一直+pos,並每次進行判斷,如果sum大於max,則max=sum,在sum碰見負數時會減小,

這樣就使sum+pos永遠大於等於pos;

//3 -1 2 1

//1 2 3 -1

//-1 2 3 4

//-1 -2 -3 -1

void fun3()

int sum = 0;

int max = v[0];

for (int i = 0;i < n;i++)

if (sum < 0)

} cout << max;

}

求乙個陣列的最長連續子串行

分析 如果允許o nlogn 的複雜度,那麼可以先排序,可是本題要求o n 由於序列裡的元素是無序的,又要求o n 首先要想到用雜湊表。用乙個雜湊表unordered mapused 記錄每個元素是否使用,對每個元素,以該元素為中心,往左右擴張,直到不連續為止,記錄下最長的長度。class solu...

求乙個陣列的連續子陣列的最大和

輸入乙個整型陣列,陣列中有正有負。陣列中的乙個或多個整數組成乙個子陣列。求所有子陣列的和的最大值,要求時間複雜度為o n 首先,根據題意,可能我們都會想到列舉陣列中所有的子陣列的和。我們都知道乙個長度為n的陣列,總共有n n 1 2個子陣列。計算出所有子陣列的和需要o n 2 時間。我們先來舉例分析...

求乙個陣列的和最大的連續子陣列及擴充套件

在c 中a 1與a 1 有什麼區別?a 1是賦值,a 1 是乙個函式值 求1億內的素數,並輸出。include include const long n 10000001 bool prime 10000001 int main prime 2 true for i 3 i sqrt n i 2 f...