621. Maximum Subarray V
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
Post a Comment