最大子数组二
来源:互联网 发布:linux mount iso 编辑:程序博客网 时间:2024/04/29 13:23
上次写了个算法导论的实现方法,然后继续看练习题发现可以用更简单的方式去实现,利用线性的方式去实现O(n)复杂度的算法。思想是记录从左边记录自己当前处理过的最大子数组,然后进行连续记录,如果加和小于0,则置为0,继续进行加和求解!
具体代码如下:
int Find_MaxiMum_SubArray2(int *A,int low,int high,int& max_left,int& max_right,int& max_value){max_left = low;max_right= low;max_value = 0;int ThisSum=0;int tmp_left=low;for (int i = low; i < high+1; i++){ThisSum += A[i];if (ThisSum>max_value){max_value = ThisSum;max_right = i;max_left = tmp_left;}else if(ThisSum<0){ThisSum = 0;tmp_left = i+1;}}return 0;}
发现代码比原来更短,且时间复杂度更好。
- 最大子数组二
- 算法讨论(二)---求子数组的最大和
- 算法学习二----求子数组的最大和
- 面试杂题(二)子数组的最大和
- 浅谈分治问题之二:最大子数组问题
- 求最大子数组
- 求最大子数组
- 子数组和最大
- 求最大子数组
- 最大子数组
- 最大子数组和
- 最大子数组和
- 子数组最大和
- 子数组最大乘积
- 最大子数组
- 最大子数组乘积
- 最大子数组和
- 子数组最大和
- 关于java注解
- How to Analyze Java Thread Dumps
- 服务器提权总结
- k-d tree的最近邻搜索算法
- 需求又变了,怎么办?
- 最大子数组二
- Debug Valgrind
- nyist oj 119 士兵杀敌(三)之 线段树(静态实现)
- Linux下C编程小Tips--持续update~
- java.util.map中对value值排序
- 无法运行Eclipse的问题解决方法简介
- 用SurfaceView实现Android游戏摇杆
- 网站入侵与脚本攻防修炼
- SIP协议详解(中文)-6