Suppose we have an array of positive values called nums, we have to find the sum of all possible odd-length subarrays. As we know a subarray is a contiguous subsequence of the array. We have to find the sum of all odd-length subarrays of nums.
So, if the input is like nums = [3,8,2,5,7], then the output will be The odd-length subarrays are −
nums[0] = 3 nums[1] = 8 nums[2] = 2 nums[3] = 5 nums[4] = 7 nums[0..2], so sum = 13 nums[1..3], so sum = 15 nums[2..4], so sum = 14 nums[0..4] = 25 So total sum is 3+8+2+5+7+13+15+14+25 = 92
To solve this, we will follow these steps −
total:= 0
idx:= 0
l:= a list of all odd placed indices
while idx < size of l, do
k:= l[idx]
for i in range 0 to size of nums, do
if i+k < size of nums + 1, then
total := total + sum of all elements in nums from index i to i+k-1
idx := idx + 1
return total
Example (Python)
Let us see the following implementation to get better understanding −
def solve(nums): total=0 idx=0 l=[i for i in range(len(nums)+1) if i%2!=0] while(idx<len(l)): k=l[idx] for i in range(len(nums)): if i+k < len(nums)+1: total+=sum(nums[i:i+k]) idx+=1 return total nums = [3,8,2,5,7] print(solve(nums))
Input
[3,8,2,5,7]
Output
92