求连续子数组最大和问题的两种解法_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算法之最大连续子数组

/** * @author beggar 770793038@qq.com * @param type $arr * @param type $begin * @param type $end...
  • lhbeggar
  • lhbeggar
  • 2015年05月14日 21:51
  • 300

子数组最大和

看到的一个面试题。有很多人已经写过,在此记下,明天给出拓展。 题目:输入一个整型数组,数组里有正数也有负数,数组中连续的一个或多个整数组成为子数组,求有最大和的子数组。要求:时间复杂度O(n)。 ...
  • lizhi389
  • lizhi389
  • 2012年11月17日 17:53
  • 213

[LeetCode] Maximum Subarray 求连续子数组的最大和

声明:原题目转载自LeetCode,解答部分为原创 Problem :     Find the contiguous subarray within an array (co...
  • xblog_
  • xblog_
  • 2017年06月05日 21:52
  • 292

Java编程----连续子数组的最大和

本篇博客的编程是关于数组的,数组在编程中有着举足轻重的地位,因为在Java中数组是直接存储在栈中的,所以操作起来很方便,效率非常高,数组也是面试中经常考察的一部分,关于数组的编程题目丰富多样,逻辑性很...
  • sd_lucky
  • sd_lucky
  • 2016年08月04日 23:09
  • 2556

连续子数组的最大和 java实现

题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如...
  • qq_23217629
  • qq_23217629
  • 2016年09月11日 20:25
  • 879

java求连续子数组的和最大

题目描述: 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 思路: ...
  • li_zhenxing
  • li_zhenxing
  • 2014年05月04日 10:19
  • 1512

【面试题之算法部分】最大和连续子数组

问题描述:给定一个数组A[0,1…n-1],求A的连续子数组,使该数组和最大 一. 暴力法 分析:首先初始化要求的最大值maxSum为A[0],然后定义三个索引i、j、k,然后三层循环:第一层i从0...
  • YoungLeoo
  • YoungLeoo
  • 2015年08月16日 08:29
  • 4475

连续子数组的最大和 动态规划实现

/* *copyright@nciaebupt 转载请注明出处 *问题:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。 *求所有子数组的和的最大值。要求时间负责度为...
  • wuwuwuwuwuwuwuwu
  • wuwuwuwuwuwuwuwu
  • 2013年01月08日 16:51
  • 2571

剑指offer之连续子数组的最大和(Python)

输入一个整形数组,有正数和负数,数组中的一个或连续多个整数组成一个子数组,O(n)时间求所有子数组的和的最大值...
  • u010636181
  • u010636181
  • 2017年11月02日 11:17
  • 185

【算法拾遗】三种方法求连续子数组的最大和

这是一道考的烂的不能再烂的题目,但是依然有很多公司乐于将这样的题目作为笔试或面试题,足见其经典。 问题是这样的:一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该子数组中各元素...
  • mmc_maodun
  • mmc_maodun
  • 2014年03月13日 00:09
  • 18252
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求连续子数组最大和问题的两种解法_PHP实现
举报原因:
原因补充:

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