最大子序列和的求解(时间复杂度O(N))
2013-07-30 19:48
232 查看
#include <iostream> #include <cstdio> using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { int a[1000],i; for(i=0;i<n;i++) scanf("%d",&a[i]); int ii=0,jj=0,k=0,thissum=0,maxsum=0; for(i=0;i<n;i++) { thissum+=a[i]; if(thissum>maxsum) {ii=k;jj=i;maxsum=thissum;} else if(thissum<0) {thissum=0;k=i+1;} } printf("%d--%d:%d\n",ii+1,jj+1,maxsum); } return 0; }
相关文章推荐
- (C#)找出数组中最大子序列之和,分别以O(N^2),O(NlogN),O(N) 这3种时间复杂度求解
- 最大子序列和问题的求解(时间复杂度为O(N))
- 数组连续子序列的最大的和-四种算法,四种时间复杂度
- 算法-子数组连续序列最大和其时间复杂度如何从O(n^3)到O(n)
- 算法与数据结构——时间复杂度验证:最大子序列问题 Max Subsequence Sum
- 求解最大子序列和问题的线性时间算法
- 最大连续子序列和 HDU 1231 (时间复杂度为O(n))
- 以时间复杂度O(n)计算最大子序列和
- 最大子序列和的四种求解算法及其时间比较
- 线性时间求解最大子序列和——HDU1003
- 用分治法求最大子序列问题,时间复杂度O(N*logN)
- 无序序列中O(n)时间复杂度寻找最小(最大)的K个数
- 【算法数据结构Java实现】时间复杂度为O(n)的最大和序列
- 求最大连续序列和的一个巧妙方法,时间复杂度O(n)
- 求最大子序列和的四种经典方法及其算法时间复杂度分析
- Manacher算法:求解最长回文字符串,时间复杂度为O(N)
- 求最大值最小值的方法 时间复杂度O(n)
- 有 n 个无序整数( n>10000), 则找出其中最大的 M 个数字( 5<M<10), 所需要的最小时间复杂度为:
- 最长递增子序列,时间复杂度(O(nlogn))
- 给定整型数组,其中每个元素表示木板的高度,木板的宽度都相同,求这些木板拼出的最大矩形的面积。并分析时间复杂度。