53. Maximum Subarray

来源:互联网 发布:sql 时间区间条件查询 编辑:程序博客网 时间:2024/06/05 10:45

53. Maximum Subarray

Kadane’s Algorithm

class Solution {public:    //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    int maxSubArray(vector<int>& nums) {        if (nums.size() == 0) return 0;        int max_global = nums[0];        int max_current = max_global;        for (int i = 1; i < nums.size(); ++i) {            max_current = max(nums[i], nums[i]+max_current);            max_global = max(max_current, max_global);        }        return max_global;    }};

dp

class Solution {public:    int maxSubArray(vector<int>& nums) {        int dp[nums.size()];        dp[0] = nums[0];        int max_global = dp[0];        for (int i = 1; i < nums.size(); i++) {            dp[i] = nums[i] + (dp[i-1] > 0 ? dp[i-1] : 0);            max_global = max(max_global, dp[i]);        }        return max_global;    }};
原创粉丝点击