【发布时间】: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