我找不到与我正在处理的这个具体问题有关的问题.所以问题是,要找到具有最大总和的数组中的连续子集,但是子集的第一个整数应该大于其在O(n)时间内的最后一个整数.
例如 : 2 4 12 16 3 19 5 20 18 24
输出应为62,(19 5 20 18).到目前为止,我已经提出了这个算法:
private int biggestSum(int[] arr)
{
int startingIndex = 0;
int endingIndex = 1;
int sum_so_far = arr[0];
int sum_biggest = arr[0];
int count = 0;
for (int i = 1; i < arr.Length; i++)
{
sum_so_far += arr[i];
count++;
if (sum_so_far > sum_biggest)
{
startingIndex = i - count;
endingIndex = i;
sum_biggest = sum_so_far;
}
if (sum_so_far < 0)
{
sum_so_far = …Run Code Online (Sandbox Code Playgroud) algorithm ×1