lincode.41 最大子数组

最大子数组

 

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。

注意事项

子数组最少包含一个数

您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题? Airbnb Amazon LinkedIn Cryptic Studios Dropbox Apple Epic Systems TinyCo Yelp Hedvig Zenefits Uber Snapchat Yahoo Microsoft Bloomberg Facebook Google Twitter
感谢您的反馈
样例

给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6

挑战

要求时间复杂度为O(n)

标签
 
 
class Solution {
public:
/*
* @param nums: A list of integers
* @return: A integer indicate the sum of max subarray
*/
int maxSubArray(vector<int> &nums) {
// write your code here
int s=nums.size();
int res=nums[0];
int cn=0;
for(int i =0;i<s;i++){
cn+=nums[i];
if(res<cn)
res=cn;
if(cn<0)
cn=0;
}
return res;
}
};

  

上一篇:最大子数组(LintCode)


下一篇:lintcode-42-最大子数组 II