子陣列最大和

2021-06-11 01:34:23 字數 474 閱讀 4799

看到的乙個面試題。有很多人已經寫過,在此記下,明天給出拓展。

題目:輸入乙個整型陣列,陣列裡有正數也有負數,陣列中連續的乙個或多個整數組成為子陣列,求有最大和的子陣列。要求:時間複雜度o(n)。

**如下:

#include using namespace std;

int main(void)

; int size = sizeof(a) / sizeof(int);

int result = max_subarr(a, size);

cout << result << endl;

return 0;

}int max_subarr(int a, int size)

else

sum = sum > k ? sum : k;

} return sum;

}

子陣列最大和

設sum i 為以第i個元素結尾且和最大的連續子陣列。假設對於元素i,所有以它前面的元素結尾的子陣列的長度都已經求得,那麼以第i個元素結尾且和最大的連續子陣列實際上,要麼是以第i 1個元素結尾且和最大的連續子陣列加上這個元素,要麼是只包含第i個元素,即sum i max sum i 1 a i a ...

子陣列最大和

思路 隨機產生5個數存在陣列a裡,定義陣列b來儲存子陣列的和,求和先求以第乙個隨機數開頭的所有情況,再求以第二個數開頭的所有情況,以此類推,例如 隨機數為1,2,3,4,5 先求 1,2,3,4,5 1,2,3,4 1,2,3 1,2這幾個子陣列的和,然後繼續求 2,3,4,5 2,3,4 2,3以...

《子陣列最大和》

1 源 1 include2 using namespace std 3 define n 1000045 int max int a,intb 6 12if a b a 0 13 16if a b a a b b 1720 return y 21 22 23int select int a,int...