LeetCode 简单 - 最大子序和(53)
Posted -xinxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 简单 - 最大子序和(53)相关的知识,希望对你有一定的参考价值。
采用动态规划方法O(n)
设sum[i]为以第i个元素结尾且和最大的连续子数组。假设对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且和最大的连续子数组实际上,要么是以第i-1个元素结尾且和最大的连续子数组加上这个元素,要么是只包含第i个元素,即sum[i]=max(sum[i-1]+a[i],a[i])
class Solution { public: int maxSubArray(vector<int>& nums) { int res=INT_MIN; int f_n=0; for(int i=0;i<nums.size();i++) { f_n=max(nums[i],nums[i]+f_n); if(f_n>res) res = f_n; } return res; } };
以上是关于LeetCode 简单 - 最大子序和(53)的主要内容,如果未能解决你的问题,请参考以下文章