牛客網 連續最大正數的和

2021-09-23 21:08:49 字數 1030 閱讀 4815

題目描述

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

輸入描述: 輸入為兩行。 第一行乙個整數n(1 <= n <= 100000),表示一共有n個元素 第二行為n個數,即每個元素,每個 整數都在32位int範圍內。以空格分隔。

輸出描述: 所有連續子陣列中正數和最大的值。

示例

輸入:20 3 -12 50 7

輸出: 57

解題思路

碰到負數則之前的和清零,重新計算正數的和。

完整**

#define _crt_secure_no_warnings 1

#include #include #include using namespace std;

int main()

int sum = v[0];

int s2 = 0;

int s1 = 0;

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

else

s2 = s1 + v[i];

if (s2>s1)

s1 = s2;

else

sum = sum > s2 ? sum : s2;

} cout << sum;

system("pause");

return 0;

}

這道題和之前的 連續最大和很容易混淆,所以我在這裡有必要說明一下。

連續最大和 :

只要求和是最大的即可,其中如果滿足要求,負數也有可能算在最大和的裡面。

例如(20 3 -12 50 7) 在這裡會輸出 68。

連續最大正數和:只計算正數求和的大小,遇到負數則歸0重新計算。

例如(20 3 -12 50 7) 在這裡會輸出 57。

牛客網 和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...

牛客網 和為S的連續正數序列

小明很喜歡數學,有一天他在做數學作業時,要求計算出9 16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100 至少包括兩個數 沒多久,他就得到另一組連續正數和為100的序列 18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和...

牛客網 連續最大和

題目描述 乙個陣列有 n 個元素,求連續子陣列的最大和。例如 1,2,1 和最大的連續子陣列為 2,1 其和為 3 輸入描述 輸入為兩行。第一行乙個整數n 1 n 100000 表示一共有n個元素 第二行為n個數,即每個元素,每個整數都在32位int範圍內。以空格分隔。輸出描述 所有連續子陣列中和最...