Dynamic Programming:53. Maximum Subarray

来源:互联网 发布:java导入进度条 编辑:程序博客网 时间:2024/06/15 13:17

建立一个数组numsres,和array一样长,每一个位置i存放的是包括array[i]在内的最大的连续子数组的和。这样,如果numsres[i-1]小于0,说明numsres[i]就等于array[i]。否则numsres[i]就是numsres[i-1]+array[i]。贴上我的代码:

class Solution {public:    int maxSubArray(vector<int>& nums) {        vector<int> numsres(nums.size());        numsres[0] = nums[0];        int max = numsres[0];        for(int i = 1; i < nums.size(); ++i)        {            if(numsres[i - 1] < 0)            {                numsres[i] = nums[i];            }            else            {                numsres[i] = numsres[i - 1] + nums[i];            }            if(numsres[i] > max)                max = numsres[i];        }        return max;    }};



阅读全文
0 0
原创粉丝点击