31.连续子数组的最大和
2017-05-19 20:11
281 查看
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
方法:动态规划
思路:在遍历到a[i]时,前面已求得的以a[i-1]结尾的最大和是sum[i-1]
如果a[i]>sum[i-1]+a[i],那么将sum[i]=sum[i-1]+a[i]
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
方法:动态规划
思路:在遍历到a[i]时,前面已求得的以a[i-1]结尾的最大和是sum[i-1]
如果a[i]>sum[i-1]+a[i],那么将sum[i]=sum[i-1]+a[i]
int FindGreatestSumOfSubArray(vector<int> array) { int res=array[0]; int sum=array[0]; int n=array.size(); for(int i=1;i<n;i++){ if(sum>0) sum+=array[i]; else sum=array[i]; //如果遇到sum<=0,则放弃之前的求和 if(sum>res) res=sum; } return res; }
相关文章推荐
- 剑指offer:31-连续子数组的最大和
- 剑指offer-面试题31.连续子数组的最大和
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- 【剑指offer-Java版】31连续子数组的最大和
- 31 连续子数组的最大和
- 面试题31:连续子数组的最大和
- 面试题31:连续子数组最大的和
- 剑指offer——面试题31:连续子数组的最大和
- 剑指offer代码解析——面试题31连续子数组的最大和
- 剑指offer面试题31:连续子数组的最大和
- 面试题31:连续子数组的最大和
- offer31--连续子数组的最大和
- 【剑指offer】面试题31:连续子数组的最大和
- 剑指offer 31. 连续子数组的最大和
- 剑指Offer—编程题31(连续子数组的最大和)
- 剑指offer代码解析——面试题31连续子数组的最大和
- 面试题31:连续数组的最大和
- 31 - 连续字数组的最大和
- 面试题31:连续子数组的最大和