621. Maximum Subarray V

Code(Language:C++)
class Solution {
public:
    /**
     * @param nums: an array of integers
     * @param k1: An integer
     * @param k2: An integer
     * @return: the largest sum
     */
    int maxSubarray5(vector<int> &nums, int k1, int k2) {
        // write your code here
        const int size = nums.size();
        if(size < k1){
            return 0; 
        }
        // k1å’ŒK2
        vector<int> prefixSum(size + 1, 0);
        for(int i = 0; i < size; i++){
            prefixSum[i + 1] = prefixSum[i] + nums[i]; 
        }
        int maxV = INT_MIN; 
        for(int i = 0; i <= size + 1 - k1; i++){
            for(int j = k1; j <= k2; j++){
                if(i + j <= size){
                  maxV = max(maxV, prefixSum[i + j] - prefixSum[i]); 
                }
            }
        }
        return maxV;
    }
};

Comments

Popular posts from this blog

算法的比较