文章目录
题目
给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。
子数组 定义为原数组中的一个连续子序列。
请你返回 arr 中 所有奇数长度子数组的和 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sum-of-all-odd-length-subarrays
O(n^2) 的解法
class Solution {
public int sumOddLengthSubarrays(int[] arr) {
// 数组长度
int len = arr.length;
// 所有奇数长度子数组的和
int ret = 0;
for(int i=0;i<len;i++){
int sum = 0;
for(int j=i;j<len;j++){
sum = sum + arr[j];
// 奇数&1 == 1,通过该方法快速判断当前子数组的长度是否是奇数
if(((j-i+1)&1) == 1){
ret = ret + sum;
}
}
}
return ret;
}
}