数据结构与算法 求最大子序列
来源:互联网 发布:ios5.0.1软件下载 编辑:程序博客网 时间:2024/05/16 12:40
1.递归:
分别求出左半部、右半部以及包含中间部分的最大值。
public int maxSum(int[] a,int left,int right){if(left==right){return a[left]; //基准情形} int center=(left+right)/2;int maxleft=maxSum(a,left,center);int maxright=maxSum(a,center+1,right); int leftsum=0,maxleftsum=Integer.MIN_VALUE;for(int i=center;i>=left;i--){leftsum+=a[i];if(maxleftsum<leftsum){maxleftsum=leftsum;}}int rightsum=0,maxrightsum=Integer.MIN_VALUE;for(int i=center+1;i<=right;i++){rightsum+=a[i];if(maxrightsum<rightsum){maxrightsum=rightsum;}}return max3(maxleftsum+maxrightsum,maxleft,maxright);}public int max3(int a,int b,int c){return a>=b?(a>=c?a:c):(b>=c?b:c);}
2.最佳算法:
public int maxSum(int[] a){int max=Integer.MIN_VALUE,sum=0;for(int i=0;i<a.length;i++){sum+=a[i];if(max<sum)max=sum;else if(sum<=0)sum=0;}return max;}
0 0
- 数据结构与算法 求最大子序列
- 【数据结构与算法分析】2.4 求最大子序列和
- 【数据结构与算法】最大子序列
- 第7周 数据结构与算法分析 2-8求最大子序列的函数
- 求最大子序列算法
- 【算法与数据结构】最大子序列和问题
- 数据结构与算法分析之最大子序列和
- 用Python 学习数据结构与算法 六、最大子序列
- 【数据结构与算法】最大子序列和问题的求解
- 数据结构与算法分析--最大子序列和问题
- 求最大子序列问题-数据结构
- 数据结构与算法-求子数组的最大和
- 数据结构与算法——求最大子矩阵问题
- 数据结构与算法--求最大子列和问题
- 求最大子序列和问题(读《数据结构与算法分析——C语言描述》有感)
- 求最大子序列的算法
- 联机算法求最大子序列和
- 求最大子序列和算法
- js导出excel方法
- Java 线程(一)----线程安全与不安全
- ResultSet是load到内存里还是只是维护一个Cursor
- jquery判断禁止输入汉字
- Android 防止按钮控件被重复点击.
- 数据结构与算法 求最大子序列
- ssh框架的整合(struts-2.5.5+spring-4.3.4+hibernate-5.2.4)
- 初识Unity 3D——TrialRenderer、LineRenderer、AduioClip
- UML总结之(用例图)
- Java线程(二)----线程同步synchronized和volatile
- 关于windows下使用webkit或chrome浏览器内核总结(***)
- 哈尔滨理工大学全国邀请赛A题(dp)
- linux网络编程中要注意信号量
- Kafka入门经典