1007 Maximum Subsequence Sum
2014-02-16 15:16
381 查看
当然,数据结构与算法分析的书上还有分治的方法,这种方法比较简单。第二章。
这是参考:http://blog.csdn.net/lv_zj/article/details/15505305
这是自己写的
#include<iostream>
#include<math.h>
using namespace std;
void MaxSubsequenceSum(const int A[],int N)
{
int thissum,maxsum,j,start,finish,mark;
thissum=0;
maxsum=-1;
start=0;
finish=N-1;
mark=0;
for(j=0;j<N;j++)
{
thissum+=A[j];
if(thissum>maxsum){
maxsum=thissum;
start=mark;
finish=j;
}
else if(thissum<0)
{
thissum=0;
mark=j+1;
}
}
if(maxsum<0)
maxsum=0;
printf("%d %d %d",maxsum,A[start],A[finish]);
}
int main()
{
int m;
int A[10000];
cin>>m;
int i;
for(i=0;i<m;i++)
cin>>A[i];
MaxSubsequenceSum(A,m);
return 0;
}
这是参考:http://blog.csdn.net/lv_zj/article/details/15505305
这是自己写的
#include<iostream>
#include<math.h>
using namespace std;
void MaxSubsequenceSum(const int A[],int N)
{
int thissum,maxsum,j,start,finish,mark;
thissum=0;
maxsum=-1;
start=0;
finish=N-1;
mark=0;
for(j=0;j<N;j++)
{
thissum+=A[j];
if(thissum>maxsum){
maxsum=thissum;
start=mark;
finish=j;
}
else if(thissum<0)
{
thissum=0;
mark=j+1;
}
}
if(maxsum<0)
maxsum=0;
printf("%d %d %d",maxsum,A[start],A[finish]);
}
int main()
{
int m;
int A[10000];
cin>>m;
int i;
for(i=0;i<m;i++)
cin>>A[i];
MaxSubsequenceSum(A,m);
return 0;
}
相关文章推荐
- 黑马程序员—20—java基础:有关GUI图形用户界面学习笔记和学习心得体会
- iOS- UIScrollView、UIPageControl分页浏览图片
- 浅谈iOS调试技巧的实际应用(二) UI篇
- ios UITableViewCell重用问题
- Java学习第22天:GUI
- 【算法详解】斐波那契数列 - Fibonacci sequence
- 精巧好用的DelayQueue
- HDOJ1005 Number Sequence
- HDOJ1005 Number Sequence
- Quick Explanation of Scala’s (_+_) Syntax
- Java阻塞队列BlockingQueue实现生产者消费者-只有代码-不讲原理
- Range Minimum Query and Lowest Common Ancestor
- Range Minimum Query and Lowest Common Ancestor
- [原创]传递UIScrollView的滑动事件到其子视图中
- UvaLive LA2678 Subsequence
- iOS 下类似UITableView的可循环列表利用UIScrollView制作
- linq query, using int.parse to convert varchar to int while orderby
- 【ARDUINO】HC-05蓝牙不配对问题
- 【ARDUINO】串口无法打开问题
- duilib : 静态控件的点击