元のタイトル
コードの実装(n ^ 3時間計算量の最初のブラシタイムアウト)
class Solution {
public:
vector<int> maxSumOfThreeSubarrays(vector<int>& nums, int k) {
int n = nums.size(),end,start,gap,max = -1,tmp;
vector<int> temp(n,0),dp(temp);
vector<int> ret(3,0);
for(int i=0;i<n;i++)
temp[i] = (i ? temp[i-1]:0) + nums[i];
for(start = 0;start<=n-k;start++)
dp[start] = temp[start+k-1] - (start ? temp[start-1] : 0);
for(start=0;start<=n-(k<<1)-k;start++)
{
for(gap=start+k;gap<=n-(k<<1);gap++)
{
for(end=gap+k;end<=n-k;end++)
{
tmp = dp[start] + dp[gap] + dp[end];
if(tmp > max)
{
max = tmp;
ret[0] = start,ret[1] = gap,ret[2] = end;
}
}
}
}
return ret;
}
};