您的位置:首页 > 其它

LeetCode 53 - Maximum Subarray

2016-03-05 15:15 405 查看
Maximum Subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array 
[−2,1,−3,4,−1,2,1,−5,4]
,

the contiguous subarray 
[4,−1,2,1]
 has the largest sum = 
6
.

My Code

class Solution {
public:
int maxSubArray(vector<int>& nums) {
int size = nums.size();
vector<int> dp(size, 0);
int m = nums[0];

// dp[i] means the max sum of sub array from some j(j<=i) to i
dp[0] = nums[0];
for (int i = 1; i < size; i++)
{
dp[i] = dp[i-1] < 0 ? nums[i] : dp[i-1] + nums[i];
m = max(m, dp[i]);
}

return m;
}
};
Runtime: 12 ms

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: