1. 程式人生 > >LeetCode-53-Maximum Subarray(DP/分治)-Medium

LeetCode-53-Maximum Subarray(DP/分治)-Medium

題意理解:

求解數列中的子數列,要求子數列的和最大;

題目分析:

1. DP(如解題程式碼所示);

2. 分治(參考http://www.2cto.com/kf/201403/289418.html)

解題程式碼:

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