取数组中和最大的一段连续序列
来源:互联网 发布:c语言制表符是什么 编辑:程序博客网 时间:2024/05/24 02:42
问题:
已知有一数组整型array[N],其中N很大,array数组中存在正数、负数和0。求其实位置start和end,使得array[start]到array[end]所有元素之和最大。
算法过程:
1、初始化start、end、p、q为array数组的第一个元素位置,初始化max为array[0],sum为array[0];
2、计算sum = sum+array[q],若p等于q,则sum = sum/2;
3、若Max小于sum,则令Max为sum,start为p,end为q,q后移一位。否则,若sum小于等于0,则q后移,直到array[q]大于0时(若q之后的元素均小于等于0,则退出程序),令p等于q,sum等于array[p],若sum大于0,则q后移一位。
4、若q >= N,则退出程序,start即为找到的起始位置,end即为终止位置,Max即为最大值。否则,转第2步。
算法时间复杂度分析
以q后移为算法的基本步骤,算法的时间复杂度为O(n)。
0 0
- 取数组中和最大的一段连续序列
- 求数组中和最大的子序列
- 寻找数组中和最大的子序列
- 求数组中和最大的子序列
- 数组中和最大的递增子序列
- 如何查找数组中和最大的子序列
- C#求数组中和最大的连续子数组
- 一个数组中和最大的连续子数组
- leecode 连续数组中和最大路径
- 关于如何查找数组中和最大的子序列
- 求出int数组中和最大的子序列
- 数组的最大连续子序列xor
- 数组的 连续子序列最大和
- 求数组中和最大子序列
- 数组连续子序列的最大和&最大积
- 求数组中和最大的子数组并输出子数组序列
- 和为n连续正数序列 & 排序数组中和为给定值的两个数字
- 求数组中和最大的子数组
- install MEAN(MongoDB,Expressjs,Angularjs,Nodejs)
- 调试的一些技巧
- leetcode第一刷_Remove Element
- 1、免账号访问Windows共享文件
- Android-自定义PopupWindow
- 取数组中和最大的一段连续序列
- 我们为什么会喜欢《美国末日》中的Ellie
- c#中单例的实现
- UVA11889 Benefit
- ubuntu 13.10搭建MTK android源码编译环境
- leetcode第一刷_Populating Next Right Pointers in Each Node II
- nyoj 士兵杀敌系列
- Binary Tree Level Order Traversal II
- 在引用KindEditor编辑器时,运行时出现以下错误:错误46 找不到类型或命名空间名称“LitJson”(是否缺少 using 指令或程序集引用?)