【最大子序列的和】
来源:互联网 发布:pdf批量合并软件 编辑:程序博客网 时间:2024/06/03 05:07
最大子序列的和
问题描述:
求取数组中最大连续子序列和,例如给定数组为A={1, 3, -2, 4, -5}, 则最大连续子序列和为6,即1+3+(-2)+ 4 = 6。
思路:
因为最大 连续子序列和只可能是以位置0~n-1中某个位置结尾。当遍历到第i个元素时,判断在它前面的连续子序列和是否大于0,如果大于0,则以位置i结尾的最大连续子序列和为元素i和前门的连续子序列和相加;否则,则以位置i结尾的最大连续子序列和为元素i。
代码:
#include<cstdio>int a[1000000]; int maxsequence(int a[], int len){ int maxsum, maxhere; maxsum = maxhere = a[0]; //初始化最大和为a【0】 for (int i=1; i<len; i++) { if (maxhere <= 0) maxhere = a[i]; //如果前面位置最大连续子序列和小于等于0,则以当前位置i结尾的最大连续子序列和为a[i] else maxhere += a[i]; //如果前面位置最大连续子序列和大于0,则以当前位置i结尾的最大连续子序列和为它们两者之和 if (maxhere > maxsum) { maxsum = maxhere; //更新最大连续子序列和 } } return maxsum;}int main(){int t;while(~scanf("%d",&t)){for(int i=0;i<t;i++){scanf("%d",&a[i]);}int s=maxsequence(a,t);printf("%d\n",s);}return 0;}
阅读全文
0 0
- 最大子序列的和
- 和最大的子序列
- 子序列的最大和
- 子序列的最大和
- 【最大子序列的和】
- 最大子序列的和
- 最大子序列和
- 最大子序列和
- 最大和子序列
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和?
- 最大子序列和
- 最大子序列和
- 和最大子序列
- 最大子序列和
- 字符串中常用的方法
- redis常用命令(保存)
- JavaWeb学习篇之----EL表达式详解
- ECMAScript Assignment Operators
- Android 带你彻底理解 Window 和 WindowManager
- 【最大子序列的和】
- SpringMVC + Hibernate实现增删改查
- linux编程---进程间通信---共享内存
- python3 中双递归函数的调用过程详解与print()函数在程序调试过程中的作用
- ubuntu16 install nginx
- 稳定排序和不稳定排序
- 人见人爱A^B 【hdu-2035】【快速幂】
- java处理获取及处理----系统时间
- 为何搜索引擎跟电商网站那么懂我们的需求,一切都是“Cookie”在作祟!