题目描述:
示例 1:
示例 2:
示例 3:
题目分析:
- 求数组的连续数组
- 求数组的长度为奇数的连续子数组之和
思考:
class Solution {
int total = 0;
int mark = 0;
int len;
int[] nums;
public int sumOddLengthSubarrays(int[] arr) {
nums = arr;
len = arr.length;
for (int i = 0; i < len; i++) {
dfs(len, i, new ArrayList<Integer>());
}
return total;
}
public void dfs(int len, int idx, ArrayList<Integer> list) {
if (idx == len) {
return;
}
mark++;
list.add(nums[idx]);
if (mark % 2 == 1) { // 判断当前子数组是否是奇数。
int sum = list.stream().reduce(Integer::sum).get();
total += sum;
}
dfs(len, idx + 1, list);
list.remove(Integer.valueOf(nums[idx]));
mark--;
}
}