题目:
给你一个正整数数组 arr
,请你计算所有可能的奇数长度子数组的和。
子数组 定义为原数组中的一个连续子序列。
请你返回 arr
中 所有奇数长度子数组的和 。
class Solution {
public:
int sumOddLengthSubarrays(vector<int>& arr) {
int sum=0;
int length=arr.size();
for(int i=0;i<length;i++)
{
for(int j=1;i+j<=length;j+=2)//j为连续子数组的长度
{
for(int k=i;k<=i+j-1;k++)
/*计算起点为i,长度为j的子数组的和,这里j只为奇数,如
[1] = 1
[4] = 4
[2] = 2
[5] = 5
[3] = 3
[1,4,2] = 7
[4,2,5] = 11
[2,5,3] = 10,当i=0时是先[1]+[1,4,2],i=1s时是[2]+[4,2,5]
*/
{
sum+=arr[k];
}
}
}
return sum;
}
};
这是暴力方法