求最大子段和
来源:互联网 发布:51单片机delay延时函数 编辑:程序博客网 时间:2024/05/07 03:44
求最大子段和的扫描算法中,并不能成立数组中元素全为负数的情况。
扫描算法:
sum=0;
max=0;
for i=[0,n)
sum=max(sum+a[i],0);
max=(max,sum);
但这显然不能够处理元素全为负数的情况。这里要进行单独处理,我们可以将负数的处理判断和for循环放在一起进行处理,提高效率。
/*author:song0071000#126.comtime:20140419function:get the max subsum(include all the element is negative)*/int GetMaxSubSum(int a[],int n)//这里的强制条件就是n>0{bool isAllNeg = true;int maxneg = INT_MIN;int max = a[0];int sum = 0;for(int i = 0 ;i < n ; i++){sum = sum + a[i];if(sum < 0)sum = 0;if(max < sum)max = sum;if(a[i]>=0&&isAllNeg)isAllNeg = false;else if(a[i]<0&&isAllNeg&&(maxneg<a[i])){maxneg = a[i];}}return isAllNeg ? maxneg : max;}
0 0
- 求最大子段和
- 求最大子段和
- 二分法求最大子段和问题
- 动态规划求最大子段和
- 动态规划求最大子段和
- 分治法求最大子段和
- 动态规划:求最大子段和
- 动态规划求最大子段和
- 分治法求最大子段和
- 动态规划求最大子段和
- 求最大子数组/子序列/子段和问题
- 最大子段和
- 最大子段和
- 最大子段和
- 最大子段和
- “最大子段和”
- 最大子段和
- 最大子段和
- nyoj 38 布线问题
- sentos 中使用yum 本地安装源的配置
- 第二周作业
- uva 10511 Councilling(网络流)
- Random1
- 求最大子段和
- 《加密与解密》3 初步PE
- C++项目中的extern "C" {}
- 从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等
- 文件使用的方式
- Visible Lattice Points - POJ 3090 欧拉公式
- LeetCode: LRU Cache
- 指数型母函数求排列程序实现
- win7+ubuntu双系统安装方法