(之前刷过Leecode53<最大子序和>很相似,所以想用在这题上)Leecode代码以及链接https://leetcode-cn.com/problems/maximum-subarray/submissions/
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int sum=nums[0],n=nums[0];
for(int i=1;i<nums.size();i++){
if(n>=0) n+=nums[i];
else n=nums[i];
if(sum<n) sum=n;
}
return sum;
}
};
下面是HDU1003代码 http://acm.hdu.edu.cn/showproblem.php?pid=1003
#include<iostream>
#include<queue>
#include<bits/stdc++.h>
using namespace std;
#define M 100010
int num[M];
int main()
{
int N,m;
int s,end;
int cou=1;
scanf("%d",&N);
while(N--)
{
memset(num,0,sizeof(num));
scanf("%d",&m);
for(int i=0;i<m;++i)
{
scanf("%d",&num[i]);
}
int n=num[0];
int sum=num[0];
s=1;
end=1;
for(int i=1;i<m;i++){
if(n>=0) {
n+=num[i];
// end++;
}
else {
n=num[i];
s=i+1;
//e=i;
}
if(sum<n) {
sum=n;
end=i+1;
}
}
if(s>end) s=end;
// printf("$%d",len);
printf("Case %d:\n%d %d %d",cou++,sum,s,end);
//printf("###%d###",N);
if(N!= 0) printf("\n\n");
}
return 0;
}
hdu1003上包括Discuss的测试数据都过了 submit依然是WA 如果哪位大lao告诉我 一个我的程序跑不过的测试数据 会十分感谢