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

2021-09-10 22:42:51 字數 594 閱讀 1922

【思路】:

設定乙個最大和(max),對於每乙個元素都求出其最大的子陣列的連續和(tmpmax),然後再與這個最大和進行比較

**實現:

#include #include ​

int main()

//暴力求解法

int max = -100000;

for (size_t i = 0; i < num; i++)}}

std::cout << max << endl;

return 0;

}

採取乙個公式:也就是對於maxv[i] = max(max[i - 1], v[i])。也就是對於到乙個元素的位置來說,此時的連續的子陣列的最大值可能是其中乙個。然後求出來之後在於之前的最大值進行比較再決定

**實現:

int getmaxnum(int x, int y)

int max = v[0];

for (size_t i = 1; i < num; i++)

}std::cout << max << std::endl;

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

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

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

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

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

在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...