輸入描述:
輸入為兩行。 第一行乙個整數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...