黑客排名中的解决方案不匹配

Solution in hackerrank doesn't match

本文关键字:解决方案 不匹配 黑客      更新时间:2023-10-16

我已经解决了HackerRank中的最大子数组问题。
它在代码块上运行良好。但是当我提交解决方案时,它会在他们的控制台中给出不同的答案。

#include<bits/stdc++.h>
using namespace std;

int main() {
int no,n,i;
cin>>no;
while(no--){
    int arr[100001]={0},arr1[100001]={0};
    cin>>n;
    for(i=0;i<n;i++)
        cin>>arr[i];
    arr1[0]=arr[0];
    int maxi=arr[0];
    for(i=1;i<n;i++){
        if(arr[i]+arr1[i-1]>arr[i]){
            arr1[i]=arr[i]+arr1[i-1];
        }
        else{
            arr1[i]=arr[i];
        }
        if(arr1[i]>maxi)
            maxi=arr1[i];
    }

    cout<<maxi<<" ";

    sort(arr,arr+n);
    int sum=0,i=n-1;
    while(arr[i]>0)
        sum+=arr[i--];
    if(sum==0)
    sum=arr[i];
    cout<<sum<<endl;
   }
   return 0;
}

谁能告诉我如何纠正我的解决方案?

while(arr[i]>0)
    sum+=arr[i--];

这可能是垃圾,因为我可以低于 0。

例如,对于输入

1
4
1 2 3 4

我看到您的代码输出10 14错误。