算法导论 4.1-5 最大子数组问题 线性时间算法 C++简单实现
2017-04-17 23:25
836 查看
初学者,自己写了个比较简单的最大子数组问题算法,仅供参考。
如果数组全为负数,则返回最大的那个负数,可以在return前对sum判断,选择返回0。
如果需要最大子数组的左右索引,可以使用结构。
#include <iostream> int subarray(int a[], int left, int right) { int sum = INT_MIN; int temp = 0; for (int i = left; i <= right; i++) { temp += a[i]; if (temp > sum) { sum = temp; } if (temp < 0) temp = 0; } return sum; } int main() { int a[] = { 0,-1,1,1,-6,-7 }; std::cout << subarray(a, 0, 5)<<'\n'; return 0; }
如果数组全为负数,则返回最大的那个负数,可以在return前对sum判断,选择返回0。
如果需要最大子数组的左右索引,可以使用结构。
相关文章推荐
- 算法导论4.1-3~4.1-5最大子数组暴力算法和递归算法的实现和线性时间算法实现
- 算法导论-最大子数组问题-线性时间复杂度算法分析与实现
- [算法导论]练习4.1-5最大连续子数组问题
- 最大子数组问题---线性时间算法(转)
- 算法导论 第8章 线性时间排序 C++实现
- 4.1最大数组问题(算法导论)
- 算法导论之最大子数组问题 C语言实现
- 算法导论------------栈(stack)简单的数组实现
- 【软件工程】代码复审与子数组最大和线性算法寻找问题
- 股票什么时候买进什么时候卖出收益最大----求最大子数组(算法导论第四章 4.1-3)
- 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)
- 最大子数组问题的递归和非递归(线性时间)代码
- 【算法导论学习-007】最大子数组和问题(Maximum subarray problem)
- 求解最大子序列和问题的线性时间算法
- C++最大堆实现priority_queue优先级队列(算法导论)
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 练习4.1-5最大子数组线性算法及证明