# 1588. Sum of All Odd Length Subarrays
Difficulty: Easy
## Solution
```cpp=
/**
*** Author: R-CO
*** E-mail: daniel1820kobe@gmail.com
*** Date: 2020-10-23
**/
#include <cstdlib>
#include <iostream>
using std::cout;
using std::endl;
#include <vector>
using std::vector;
struct TestCaseStruct {
vector<int> input;
int expected_output;
};
class Solution {
public:
int sumOddLengthSubarrays(vector<int>& arr) {
int sum = 0;
const auto kArrSize = arr.size();
auto subarr_size = static_cast<size_t>(1);
while (subarr_size <= kArrSize) {
auto index_begin_pos = static_cast<size_t>(0);
auto index_end_pos = index_begin_pos + subarr_size - 1;
while (index_end_pos < kArrSize) {
for (auto i = index_begin_pos; i <= index_end_pos; ++i) {
sum += arr[i];
}
++index_begin_pos;
++index_end_pos;
}
subarr_size += 2;
}
return sum;
}
};
int main(int argc, char* argv[]) {
vector<TestCaseStruct> test_cases = {
{{1, 4, 2, 5, 3}, 58}, {{1, 2}, 3}, {{10, 11, 12}, 66}};
Solution solution;
for (size_t i = 0; i < test_cases.size(); ++i) {
auto& test_case = test_cases[i];
if (solution.sumOddLengthSubarrays(test_case.input) ==
test_case.expected_output) {
cout << "Test case [" << i << "] is PASS" << endl;
} else {
cout << "Test case [" << i << "] is FAILED" << endl;
}
}
return EXIT_SUCCESS;
}
```
## Result
Success
Details
Runtime: 8 ms, faster than 42.18% of C++ online submissions for Sum of All Odd Length Subarrays.
Memory Usage: 8.7 MB, less than 64.60% of C++ online submissions for Sum of All Odd Length Subarrays.
###### tags: `LeetCode-Easy` `C++`