首页 > 代码库 > hdu-1003
hdu-1003
这道题就是给出一串数,然后要我们求出其最大字串和!
然后由于要输出字串的起末位置,所以记得保存好位置的值!
代码中关键地方有详细的注释!可以在看代码的时候看一下!
注意下:就是在两组数据间是需要用一行空行来隔开的,
所以输出时需要注意下!
代码如下:
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,num[201314]; int main() { int t; cin>>t; for(int ji=1; ji<=t; ji++) { memset(num,0,sizeof(num)); cin>>n; for(int i=1; i<=n; i++) cin>>num[i]; int beg=1,end=1,sum=0,ans=-5201314,te=1;//te记得初始化赋值为 1 ! for(int i=1; i<=n; i++) { if(sum>=0) sum+=num[i]; else { sum=num[i]; te=i;//将新起点暂存起来! } if(sum>ans) { ans=sum; beg=te; end=i;//发现新的sum大于ans,所以此解可行,所以将起点和终点赋值! } } cout<<"Case "<<ji<<":\n"; cout<<ans<<" "<<beg<<" "<<end<<endl; if(ji!=t)//输出格式要求! cout<<endl; } return 0; }
hdu-1003
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。