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