最大连续子数组和 一.问题描述 给定n个整数(可能为负数)组成的序列a "1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1 ...
分类:
其他好文 时间:
2018-03-27 23:57:52
阅读次数:
387
题目要求 最大连续子数组和(最大子段和) 问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+ ...
分类:
其他好文 时间:
2018-03-24 19:27:18
阅读次数:
175
问题描述:输入是一个大小为n的整型数组,要求输出数组的任何连续子数组中的最大值。例如:输入的数组为array[10] = {31,-41,59,26,-53,58,97,-93,-23,84};输出最大连续子数组和为array[2...6]:187 算法1:对所有满足0<=i<=j<=n的(i,j) ...
分类:
编程语言 时间:
2018-02-25 14:28:16
阅读次数:
215
设计思想: 设数组长maxLength; 设子数组大小(length),依次为1,2,3,4,5........maxLength,并求每一个子数组的和 比较子数组和大小,求最大子数组和; 源代码: import java.util.Vector; public class MaxListNumbe ...
分类:
编程语言 时间:
2018-01-25 11:03:09
阅读次数:
142
给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个) 样例 给定 [-3, 1, 3, -3, 4], 返回[1,4]. 想清楚这个问题这道题就差不多有解了:“什么时候更新start(第一个数字 ...
分类:
编程语言 时间:
2018-01-18 13:30:16
阅读次数:
145
内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值,要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, ...
分类:
编程语言 时间:
2018-01-11 20:38:05
阅读次数:
195
要求: 输入一个一维整形数组,数组里有正数也有负数。 一维数组首尾相接,象个一条首尾相接带子一样。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。 设计思想: 1 设传参的数组长为n,创建长度为2n的辅助数组,按顺序赋两遍值 2 每一个以 i 开头的子数组 ...
分类:
编程语言 时间:
2017-12-10 12:57:06
阅读次数:
110
一、题目 给定一个只包含0和1的数组,找到其中包含相同0的个数和1的个数的最长子序,输出子序列的长度,要求在o(n)时间内完成。 二、思路 这个题目,看起来比较简单,一些同学可能认为题目的描述符合动态规划的特征,然后就开始用动态规划解,努力找状态转移方程。这些同学的感觉,是很正确的。但,找状态转移方 ...
分类:
其他好文 时间:
2017-10-24 13:06:28
阅读次数:
95
这道题给了我们一个二进制的数组,让我们找邻近的子数组使其0和1的个数相等。对于求子数组的问题,我们需要时刻记着求累积和是一种很犀利的工具,但是这里怎么将子数组的和跟0和1的个数之间产生联系呢?我们需要用到一个trick,遇到1就加1,遇到0,就减1,这样如果某个子数组和为0,就说明0和1的个数相等, ...
分类:
其他好文 时间:
2017-09-30 00:30:55
阅读次数:
99
思想: 经过分析可得,若子数组和为负数就已经代表这个子数组不可能为最大子数组了,相反若子数组和为正,则将最大的和比较出来便可。 故可直接遍历该数组一旦子数组和已为负数,则置为0,否则与之前的最大值进行比较,得出目前最大值。 上代码: ...
分类:
编程语言 时间:
2017-09-20 14:21:26
阅读次数:
115