leetcode-连续子数组的最大和-53

Posted 天津 唐秙

tags:

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

题目要求
  输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。
思路
  使用动态规划,子问题:局部数字构成的数组的最大连续和,转移方程F(i)=max(F(i-1)+a[i],a[i]),初始状态:F(0)=a[0],如果想要求n个数组中的最大连续子数组的和,就要先求前n-1个,用前n-1个同n个进行判断,取最大值。

代码实现

class Solution {
	public int maxSubArray(int[] nums) {
		int cur = nums[0];//用来记录当前的值
		int max = nums[0];
		int prev = 0;//用来记录前n-1个值的最大值

		for (int num : nums)
		{
			cur = num;
			if (prev > 0)
				cur = prev + cur;
			if (cur > max)
				max = cur;
			prev = cur;
		}
		return max;
	}
}

以上是关于leetcode-连续子数组的最大和-53的主要内容,如果未能解决你的问题,请参考以下文章

leetcode第53题最大子数和

Leetcode 53. 最大子序和

Leetcode刷题Python53. 最大子数组和

LeetCode-53-最大子序和

LeetCode-53-最大子序和

最大子序和问题leetcode53leetcode918