码迷,mamicode.com
首页 > 编程语言 > 详细

【剑指offer】Q31:连续子数组的组大和

时间:2017-06-26 13:35:23      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:pytho   最大   div   分析   text   post   版本号   span   sum   

简短的分析见:http://blog.csdn.net/shiquxinkong/article/details/17934747

def FindGreatestSumOfSubArray(array, index = None):
	curSum = 0
	maxSum = 0
	#return maxSum without the start and end index
	if index == None:
		for x in array:
			curSum = max(curSum, 0)
			curSum += x
			maxSum = max(maxSum, curSum)
		return maxSum
	#return maxSum and the start and end index	
	else:
		curS = -1
		curE = -1
		maxS = -1
		maxE = -1
		for i in range(len(array)):
			if curSum <= 0:
				curSum = array[i]
				curS = i
				curE = i
			else:
				curSum += array[i]
				curE = i
			if curSum > maxSum:
				maxS = curS
				maxE = curE
				maxSum = curSum
		return maxSum, maxS, maxE

这里通过index參数重载了两个版本号,一个只返回最大子段和,但有的时候我们可能还被要求返回取得最大子段和的起始区间。

上面的代码尽管看起来不像动态规划,可是思想确实是dp的思想。


【剑指offer】Q31:连续子数组的组大和

标签:pytho   最大   div   分析   text   post   版本号   span   sum   

原文地址:http://www.cnblogs.com/mfmdaoyou/p/7079911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!