求一个整型数组的最大和的子数列,要求时间复杂度为线性的
来源:互联网 发布:宣传淘宝店铺文案 编辑:程序博客网 时间:2024/05/17 07:18
/** * 有一个整形数组,求其连续和最大值的字串,时间复杂度是O(n) * 如果元素全部为正数或者负数则没有意义。 * 一般实现此算法有三种复杂度 * O(n^3),O(nlgn),O(n).下面我们实现时间复杂度为O(n)的方式 * 《算法导论》中有详细的O(nlgn)算法说明 * 《编程珠玑》第二版有O(n)的算法说明 p75算法4 * @author Administrator * */public class MaxArrayDemo {/** * @param args */public static void main(String[] args) {int[] array = {31,-41,59,26,-53,58,97,-93,-23,84};getMaxArray(array);}public static void getMaxArray(int[] array){if(array == null || array.length == 0){System.out.println("数组不存在或者数组中无元素");return;}int start = 0, end = 0;int currentSum = 0, maxSum = Integer.MIN_VALUE;for(int i = 0, len = array.length; i < len; i++){if(currentSum < 0){currentSum = array[i];start = i;}else{currentSum += array[i];}if(currentSum > maxSum){maxSum = currentSum;end = i;}}System.out.println("最大的子序列是从"+start+"到"+end);System.out.println("最大的子序列的和是"+maxSum);}}
0 0
- 求一个整型数组的最大和的子数列,要求时间复杂度为线性的
- 求数列的最大子段和的两种方法(包括时间复杂度为线性时间的算法)
- 求所有子数组的和的最大值。要求时间复杂度为O(n)
- 时间复杂度为O(N)的求最大子序列和的算法
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- 题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n)。
- 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。
- 求数组的最大子段和,动态规划 时间复杂度O(n)
- 求子数组的最大和要求O(n)
- 求最大子序列的线性时间复杂度的解法的理解
- 求一个数组的中位数时间复杂度为O(n)
- 求数组的子数组的最大和,时间为O(n)
- 每天一道LeetCode-----找到给定数组的连续子数组,使这个子数组的和最大,要求复杂度为O(n)
- 线性时间的最大子数组
- 求最大子数列的和
- 求一个数组的子数组的最大的和
- 算法4:求整型数组的连续子数组的最大和
- 关于C++默认打开函数的理解
- php中$this->是什么意思?
- 黑马程序员之银行业务调度关系学习
- Thinking in BigData(14)大数据之DM经典模型(5)
- Java界面 SWT基本组件——文本框(Text)
- 求一个整型数组的最大和的子数列,要求时间复杂度为线性的
- Medoo Info的使用:输出SQL连接信息
- C语言从尾部节点开始生成链表
- Python正则表达式指南
- spring mvc与struts的区别
- Unity3D不能创建工程
- Spring中Singleton模式的线程安全
- Reverse Words in a String
- 使用Java Native Interface的最佳实践