题目:返回一个整数数组中最大子数组要求:输入一个整形数组,数组里有整数也有负数;数组中连续的一个或多个整数组成一个整数组每个子数组都有一个和;求所有子数组的和的最大值,要求时间复杂度为O(n)。思路:设数组为a[5],则所有子数组的和可以为(1) a[0]+a[1]+a[2]+a[3]+a[4](2...
分类:
编程语言 时间:
2015-03-17 20:00:14
阅读次数:
181
一、题目返回一个整数数组中最大子数组的和要求:输入一个整形数组,数组里有正数有负数数组中连续的一个或多个整数组组成一个子数组,每个子数组都有一个和求所有子数组的和的最大值二、解题思路1、以输入三个数为例进行比较2、分三种情况,分别为一个数,两个数相加和三个数相加3、分别求得三种情况的最大值,进行比较...
分类:
其他好文 时间:
2015-03-17 19:39:52
阅读次数:
119
结队开发:林彦汝、张金题目:返回一个整数数组中最大数组的和。要求:1、输入一个整型数组,数组里有正数也有负数;2、数组中连接的一个或多个整数组成一个子数组,每个子数组都有一个和;3、求素有子数组的和的最大值。 本节课是学习结队开发,故先分配了任务:我主要负责程序分析,代码编程;张金负责代码复审,代....
分类:
编程语言 时间:
2015-03-17 19:37:56
阅读次数:
191
线段树转载请注明出处,谢谢!http://blog.csdn.net/metalseed/article/details/8039326持续更新中···一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问...
分类:
其他好文 时间:
2015-03-13 14:19:20
阅读次数:
197
上一篇我们用分治法已经将问题的复杂度降低了许多,但是,我们依旧不满足,于是,我们尝试用动态规划来做这道题。解题思路:
对于这样一个连续和的问题(个人习惯叫做最大连续和),如果我们要用动态规划来解,首先得考虑状态和状态转移方程。如果我们把题述数组看成序列,那么是不是可以用序列DP来考虑呢?
我们不妨考虑一个这样的序列:1,-3,5,-2,4
a[i]表示这个序列的第 i 个元素,dp[i]表示最...
分类:
编程语言 时间:
2015-03-11 23:27:57
阅读次数:
2083
最大和子数组是数组中和最大的子数组,又名最大和子序列。子数组是数组中连续的n个元素,比如a2,a3,a4就是一个长度为3的子数组。顾名思义求最大和子数组就是要求取和最大的子数组。 n个元素的数组包含n个长度为1的子数组:{a0},{a1},…{an-1}; n个元素的数组包含n-1个长度...
分类:
编程语言 时间:
2015-03-11 23:22:38
阅读次数:
216
前段时间看《算法导论》了解到最大子数组问题,但没有做习题,遗漏了一些重要的知识,现在《编程珠玑》上看到完整的讲解,还有一些算法技巧,故记录于此。1.定义问题在数组中找出元素之和最大的子数组,假定当数组元素全部为负数时,最大子数组是空数组,和为0。2.解决问题令数组为x[n],最大子数组下标为[p,q...
分类:
编程语言 时间:
2015-03-11 21:13:58
阅读次数:
150
题目描述:
给定一个n个元素的数组a,求a[i]+a[i+1]+…+a[j]的最大值(0 <= i <= j < n)解题思路:
我们来试试用分治法来解决这个问题。首先我们想要找到一个子数组a[i…j]为最大子数组,我们假设数组的中点为mid,可以将数组a[low…high]分成两个子数组:a[low…mid]和a[mid+1…high],那么最大子数组必然为下述三种可能之一:
1) low...
分类:
编程语言 时间:
2015-03-10 21:31:56
阅读次数:
155
选择算法伪代码:forj=1ton-1
smallest=j
fori=j+1ton
ifA[i]<A[smallest]
smallest=i
A[j]=A[smallest]
循环不变式
在for循环(循环变量为j)的每次迭代开始,包含元素A[1..j-1]对的子数组都是排好序的(由数组[1..n]的j-1个最小元素组成)
循环终止的条件是就j>n-1,..
分类:
编程语言 时间:
2015-03-08 17:24:46
阅读次数:
205
第一种:暴力枚举所有的子数组,然后比较选出最大,时间复杂度O(n^2)第二种:分治法,参见算法导论,时间复杂度O(nlogn)第三种:动态规划,时间复杂度O(n)1、A[1..j+1]的最大子数组为:max{A[1..j] , A[i,j+1](10?A[j+1]+K[j]:A[j+1](以A[j+...
分类:
编程语言 时间:
2015-03-08 15:37:45
阅读次数:
156