【问题标题】:Solution in hackerrank doesn't matchhackerrank 中的解决方案不匹配
【发布时间】:2017-01-23 08:32:22
【问题描述】:

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

#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;
}

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

【问题讨论】:

  • 分享你在本地机器和hackerrank上得到的输出

标签: c++ arrays dynamic-programming


【解决方案1】:
while(arr[i]>0)
    sum+=arr[i--];

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

例如,对于输入

1
4
1 2 3 4

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

【讨论】:

    猜你喜欢
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多