Dynamic programming 获取最小子数组和的超时错误?

Dynamic programming 获取最小子数组和的超时错误?,dynamic-programming,sub-array,Dynamic Programming,Sub Array,我得到了这种奇怪的错误,我写了一个函数来求最小子数组和。但当数组的值从1开始到大小为1 2 3 4时,这不起作用。我得到了超时,但相同的代码为12345给出了正确的答案。如果我在min_sub_数组上方放置一个语句print语句,它将为所有值提供正确答案。当值从0开始到大小为-1时,它也可以正常工作 int min_sub_array_sum(int d[], int size) { for(int i = 1; i <= size; i++) d[i] = -d[

我得到了这种奇怪的错误,我写了一个函数来求最小子数组和。但当数组的值从1开始到大小为1 2 3 4时,这不起作用。我得到了超时,但相同的代码为12345给出了正确的答案。如果我在min_sub_数组上方放置一个语句print语句,它将为所有值提供正确答案。当值从0开始到大小为-1时,它也可以正常工作

int min_sub_array_sum(int d[], int size)
{
    for(int i = 1; i <= size; i++)
        d[i] = -d[i];

    int max_end_i = d[1], max_so_far = d[1];

    for(int i = 2; i <= size; i++)
    {
        max_end_i += d[i];

        if(max_so_far < max_end_i)
            max_so_far = max_end_i;

        if(max_end_i < 0)
            max_end_i = 0;
    }

    return (-max_so_far);
}

int main()
{
    int t;
    cin>>t;

    while(t--)
    {
        int n;
        cin>>n;

        int d[n];

        for(int i = 1; i <= n; i++)
            cin>>d[i];


        cout<<min_sub_array_sum(d, n)<<'\n';

    }
}
int min\u sub\u array\u sum(int d[],int size)
{
对于(int i=1;it;
而(t--)
{
int n;
cin>>n;
int d[n];
对于(int i=1;i>d[i];

cout您正在访问不存在的数组d[n]n索引