題目描述
乙個陣列有 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範圍內。以空格分隔。輸出描述 所有連續子陣列中和最...