5. 求陣列的子陣列之和的最大值
while (true)
{
var n = Console.ReadLine();
if (n == "") continue;
var l = Console.ReadLine();
if (l == "") continue;
var nums = l.Split(' ').Select(int.Parse).ToArray();
int max = 0;
int sum = 0;
int a = 0;
int b = 0;
int last = 0;
for (global::System.Int32 i = 0; i < nums.Length; i++)
{
sum += nums[i];
if (sum > max)
{
max = sum;
b = i;
a = last;
}
max = Math.Max(max, sum);
if (sum < 0)
{
sum = 0;
last = i + 1;
}
}
Console.WriteLine(max);
Console.WriteLine($"{a} {b}");
Console.WriteLine();
}Last updated