[剑指offer]面试题31:连续子数组的最大和

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[剑指offer]面试题31:连续子数组的最大和相关的知识,希望对你有一定的参考价值。

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

❖ 解法一:举例分析数组的规律

代码如下:

bool flag = false;

int FindGreatestSumOfSubArray(int *pDate, int nLength)
{
	if ((pDate == nullptr) || (nLength <= 0))
	{
		flag = true;
		return 0;
	}
	flag = false;

	int cursum = 0;
	int nGreatestSum = 0x80000000;
	for (int i = 0; i < nLength; i++)
	{
		if (cursum <= 0) cursum = pDate[i];
		else cursum += pDate[i];

		if (cursum > nGreatestSum) nGreatestSum = cursum;
	}
	return nGreatestSum;
}

❖ 解法二:应用动态规划法

暂无!!!

以上是关于[剑指offer]面试题31:连续子数组的最大和的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer面试题 42. 连续子数组的最大和

剑指offer面试题42. 连续子数组的最大和

剑指offer面试题42. 连续子数组的最大和

剑指offer-面试题42-连续子数组的最大和-动态规划

剑指OFFER----面试题42. 连续子数组的最大和

剑指 Offer 53 - I. 在排序数组中查找数字 I / 剑指 Offer 42. 连续子数组的最大和(线段树基础)/152. 乘积最大子数组 / 面试题 10.02. 变位词组