迴圈陣列最大子段和
N個整陣列成的迴圈序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的連續的子段和的最大值(迴圈序列是指n個數圍成一個圈,因此需要考慮a[n-1],a[n],a[1],a[2]這樣的序列)。當所給的整數均為負數時和為0。
例如:-2,11,-4,13,-5,-2,和最大的子段為:11,-4,13。和為20。
Input
第1行:整數序列的長度N(2 <= N <= 50000) 第2 - N+1行:N個整數 (-10^9 <= S[i] <= 10^9)
Output
輸出迴圈陣列的最大子段和。
Input示例
6 -2 11 -4 13 -5 -2
Output示例
20
#include <iostream>
#include <algorithm>
using namespace std;
int input[50000];
long long int maxSum(int n)
{
long long int result = input[0];
long long int sum = input[0];
for (int i = 1; i < n; i++)
{
if (sum < 0)
{
sum = input[i];
}
else
{
sum += input[i];
}
if (sum > result)
{
result = sum;
}
}
return result;
}
long long int minSum(int n)
{
long long int result = input[0];
long long int sum = input[0];
for (int i = 1; i < n; i++)
{
if (sum > 0)
{
sum = input[i];
}
else
{
sum += input[i];
}
if (sum < result)
{
result = sum;
}
}
return result;
}
long long int totalSum(int n)
{
long long int result = 0;
for (int i = 0; i < n; i++)
{
result += input[i];
}
return result;
}
int main(int argc, const char * argv[])
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> input[i];
}
long long sum1 = maxSum(n);
long long sum2 = totalSum(n) - minSum(n);
cout << max(sum1, sum2) << endl;
return 0;
}
相關文章
- 最大連續子陣列和(最大子段和)陣列
- awk 陣列和迴圈陣列
- 最大子段和 | 最大子矩陣 | 最大M子段和矩陣
- 陣列迴圈陣列
- linux awk 陣列和迴圈Linux陣列
- 陣列迴圈移位陣列
- while迴圈和do迴圈、緩衝區、一維陣列While陣列
- 陣列迴圈輸出陣列
- 53. 最大子陣列和陣列
- JavaScript 中 for in 迴圈和陣列的問題JavaScript陣列
- 求二維陣列中最大子陣列的和陣列
- for..in 迴圈陣列需注意陣列
- php陣列迴圈遍歷PHP陣列
- 最大子陣列和問題的解陣列
- 【力扣】最大子陣列和(貪心)力扣陣列
- [Python手撕]最大子陣列和Python陣列
- js陣列迴圈方法對比JS陣列
- 陣列元素迴圈右移問題陣列
- 靜態佇列,迴圈陣列實現佇列陣列
- 佇列 和 迴圈佇列佇列
- ASP.NET Razor – VB 迴圈和陣列簡介ASP.NET陣列
- foreach迴圈和記憶體中的陣列記憶體陣列
- 陣列常見的遍歷迴圈方法、陣列的迴圈遍歷的效率對比陣列
- 陣列1——求一個陣列的最大子陣列陣列
- LeetCode53. 最大子陣列和LeetCode陣列
- 手擼MQ訊息佇列——迴圈陣列MQ佇列陣列
- for迴圈訪問php的索引陣列PHP索引陣列
- 迴圈陣列最大欄位和(51Nod-1050)陣列
- ASP.NET Razor – C# 迴圈和陣列簡介ASP.NETC#陣列
- php 迴圈陣列引用傳值改變陣列本身的值PHP陣列
- 【DP】乘積最大子陣列陣列
- js陣列操作--使用迭代方法替代for迴圈JS陣列
- Go_ if else語句 ,,迴圈,,switch,,陣列Go陣列
- 457. 環形陣列是否存在迴圈陣列
- JS陣列迴圈的效能和效率分析(for、while、forEach、map、for of)JS陣列While
- 最大子矩陣和矩陣
- 習題8-3 陣列迴圈右移 及 練習7-8 方陣迴圈右移陣列
- 順序表應用7:最大子段和之分治遞迴法遞迴