最大子序列问题求解
来源:互联网 发布:linux 重启机器 编辑:程序博客网 时间:2024/05/20 06:31
给定一个整数序列,a0, a1, a2, …… , an(项可以为负数),求其中最大的子序列和。如果所有整数都是负数,那么最大子序列和为0;
第一个算法可以穷举出所有的可能,如下图所示:
int maxSubSum1( const int a[],int N ) { int maxSum = 0; for(int i=0; i<N; i++ ) { for(int j=i; j<N; j++ ) { int thisSum =0; for( int k=i; k<=j; k++ ) { thisSum += a[k]; } if(thisSum>maxSum) { maxSum = thisSum; } } } return maxSum; }
算法2:求出在所有位置开始的子序列,找到最大的
int maxSubSum2( const int a[],int N ) { int maxSum = 0; for(int i=0; i<N; i++ ) { int thisSum =0; for(int j=i; j<N; j++ ) { thisSum +=a[j]; //从节点i开始 累加到结尾 if(thisSum>maxSum) { maxSum = thisSum; } } } return maxSum; }
最简单的方法:
int maxSubSum3_4( int a[],int N ) { int maxSum = 0; int thisSum = 0; for(int j=0; j<N; j++ ) { thisSum += a[j]; if(thisSum>maxSum) { maxSum = thisSum; } else if( thisSum < 0 ) { thisSum = 0; } } return maxSum; }
阅读全文
0 0
- 最大子序列问题求解
- 最大子序列问题及其求解
- 最大子序列和问题的求解
- 最大子序列和问题的求解
- 最大子序列和问题求解
- 最大子序列和问题的求解
- 求解最大子序列和
- [C++]四种方式求解最大子序列求和问题
- 算法笔记1-最大子序列和问题的求解
- 关于求解最大子序列和问题的总结
- java最大子序列和问题的求解
- 【数据结构与算法】最大子序列和问题的求解
- 求解最大子序列和问题的线性时间算法
- python求解最大子序列问题,子序列可连续或不连续
- python求解最大子序列乘积问题,子序列可连续也可不连续
- 求解最大子数组问题
- 求解最大子数组问题
- 最大子序列问题
- python刷题笔记1--Two Sum
- Bootstrap4(十三)
- Java并发编程:volatile关键字解析
- 设计模式之装饰设计模式
- Bootstrap4(十四)
- 最大子序列问题求解
- 【caffe】loss function、cost function和error
- 洛谷P3178 [HAOI2015]树上操作
- list方法总结
- 关于JBOSS记录
- 可编程串口接口芯片8251A
- Spark 在反作弊聚类场景的实践
- Codeforces Round #452 (Div. 2) D. Shovel Sale
- 树莓派真的适合学习Linux系统吗?