求连续子数组最大和问题的两种解法_PHP实现

原创 2015年07月07日 22:25:47

问题描述

求子数组的最大和

题目描述:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。

关于连续子数组最大和这个问题,有两种解法,一种是动态规划

解法如下:

	function getMaxSubSum($arr){
		$curSum = $arr[0];
		$maxSum = $arr[0];
		for($i = 1; $i < count($arr); $i++){
			if($curSum > 0) $curSum += $arr[$i];
			else $curSum = $arr[$i];
			if($curSum > $maxSum) $maxSum = $curSum;
		}
		return $maxSum;
	}

还有一种是扫描法

	function getMaxSubSum($arr){
		$curSum = 0;
		$maxSum = 0;
		for($i = 0; $i < count($arr); $i++ ){
			$curSum += $arr[$i];
			if($curSum <= 0) $curSum = 0;
			if($curSum > $maxSum) $maxSum = $curSum;
		}
		if($maxSum == 0){
			$maxSum = $arr[0];
			for($i = 1; $i < count($arr); $i++){
				if($maxSum < $arr[$i] ) $maxSum = $arr[$i];
			}
		}
		return $maxSum;
	}



版权声明:本文为博主原创文章,未经博主允许不得转载。

php输出数组的最大值和最小值

/* find the highest value */print max(100, 70, 101, 50); // returns --> 101$array = array(100, 701, ...

PHP算法之最大连续子数组

/** * @author beggar 770793038@qq.com * @param type $arr * @param type $begin * @param type $end...

最大子数组问题【动态规划】

昨天偶然上csdn,看到这个问题,学习了一种复杂度为O(n)的算法,可以计算Array的最大子数组问题。思路就是从0-length,将array累加起来,同时用一个变量max记录最大值,如果sum >...

mysql存储引擎的一点学习心得总结

首先我们应该了解mysql中的一个重要特性——插件式存储引擎,从名字就可以看出在mysql中,用户可以根据自己的需求任意的选择存储引擎,实际上也是这样,即使在同一个数据库中,不同的表也可以使用不同的存...

PHP两个文件操作

1.获取指定目录下所有文件,包括子文件夹下文件,使用到递归 2.获取一个文件相对于另一个文件的相对路径 curl主要是curl_setopt中curlopt_*的理解和活用...

MIT:算法导论——2.渐近符号、递归及解法_和连续子数组的最大和、主方法/主定理求时间复杂度

#if 0 三种求解递归式的方法,即算法的O渐近界的方法: (1)代入法:猜测一个界,然后用 数学归纳法证明 这个界正确。 (2)递归树法:将递归式转换为一棵递归树。其结点表示不同层次的递归调用...

求最大连续子序列的和,两种解法:动态规划 & Kadane算法

这是一个经典问题,对于一个包含负值的数字串array[1...n],要找到他的一个子串array[i...j](0 这里我们需要注意子串和子序列之间的区别。子串是指数组中连续的若干个元素,而子序列只要...

求连续子数组最大和,两种算法

一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组的和的最大值 下面是一个效率很低的方法两层循环,思路是分别以每一个元素为起点,...

求连续子数组的最大和问题

http://www.cnblogs.com/allzy/p/5162815.html 前言   这几天一直在读Weiss的数据结构书(Data Structures an...

[数据结构与算法分析] 求连续子数组的最大和问题

前言   这几天一直在读Weiss的数据结构书(Data Structures and Algorithm Analysis in C:Second Edition),其中第二章是关于简单的算法分析(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求连续子数组最大和问题的两种解法_PHP实现
举报原因:
原因补充:

(最多只允许输入30个字)