最大子序列和
来源:互联网 发布:苏联伪军 知乎 编辑:程序博客网 时间:2024/06/05 19:57
#include<iostream>using namespace std;int maxarray1(int* a,int n)/////////{int maxsum=0,thissum;for(int i=0;i<n;i++){thissum=0;for(int j=0;j<n;j++){thissum+=a[j];if(thissum>maxsum)maxsum=thissum;}}return maxsum;}int maxarray2(int*a,int left,int right)//////////////{int mid=(left+right)/2;int maxleft=0,maxright=0,maxcross=0;if(left==right){if(a[left]>0) return a[left];else return 0;}maxleft=maxarray2(a,left,mid);maxright=maxarray2(a,mid+1,right);int maxcrossleft=0,maxcrossright=0,crossl,crossr;int thiscrossleft=0,thiscrossright=0;for(crossl=mid;crossl>=left;crossl--){thiscrossleft+=a[crossl];if(thiscrossleft>maxcrossleft)maxcrossleft=thiscrossleft;}for(crossr=mid+1;crossr<=right;crossr++){thiscrossright+=a[crossr];if(thiscrossright>maxcrossright)maxcrossright=thiscrossright;}maxcross=maxcrossleft+maxcrossright;int maxsum;maxsum=maxleft>maxright?maxleft:maxright;maxsum=maxsum>maxcross?maxsum:maxcross;return maxsum;}int maxarray2(int *a,int n)//驱动maxarray(a,left,right){return maxarray2(a,0,n-1);}int maxarray3(int* a,int n)////////////{int maxsum=0,thissum=0;for(int i=0;i<n;i++){thissum+=a[i];if(thissum>maxsum) maxsum=thissum;else if(thissum<0) thissum=0;}return maxsum;}int main(){int n;cin>>n;int*a=new int[n];for(int i=0;i<n;i++) cin>>a[i];cout<<maxarray3(a,n)<<endl;system("pause");}
0 0
- 最大子序列和
- 最大子序列和
- 最大和子序列
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和?
- 最大子序列和
- 最大子序列和
- 和最大子序列
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大和子序列
- 最大子序列和
- Prototype模式
- POJ 2591 Set Definition(数论)
- Android单线程模型相关概念详解
- POJ 1845 Sumdiv(逆元)
- Map
- 最大子序列和
- poj解题报告——2976
- WordPress 让特定的文章使用特定的CSS样式
- Java编写类似Flash的播放器
- C++开发中的pImpl方法
- Rad Studio,Delphi,C++ Builder IDE 界面定制化工具,支持XE8
- 信任在哪里?
- POJ 2606 Rabbit hunt(计算几何)
- A novel method for identifying behavioural changes in animal movement data