[LeetCode]Maximum Subarray题解

来源:互联网 发布:账号绑定网络 编辑:程序博客网 时间:2024/06/05 02:16

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.

这是动态规划的一道较简单的题目。主要思想是,以下标为index的数字作为结尾的所有subarray中,和最大的那个子数列 ,与以下标为index-1的数字作为结尾的和最大的子数列有关系。

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