我试图找到最小总和连续子数组的开始和结束索引。我尝试了很多次,但我无法找到。我为此使用 C++。
查找最小和连续子数组的代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int arr[] = {3, -4, 2, -3, -1, 7, -5};
int n = sizeof(arr) / sizeof(arr[0]);
int min_ending_here = INT_MAX;
int min_so_far = INT_MAX;
for (int i=0; i<n; i++)
{
if (min_ending_here > 0)
min_ending_here = arr[i];
else
min_ending_here += arr[i];
min_so_far = min(min_so_far, min_ending_here);
}
cout<<"minimum sum = "<<min_so_far;
}
输出:minimum sum = -6