本文主要是介绍2021-03-09(1588. 所有奇数长度子数组的和),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
自己想只能想到暴力法。
子数组求和的优化,使用前缀和(Prefix Sum)的方式也想不到。现在要好好记着了。核心是:
res += presum[i + sz] - presum[i];
第三种方法的左边有多少种选择,右边有多少种选择,要考虑0的情况。也要能判别奇偶数情况:
class Solution {public int sumOddLengthSubarrays(int[] arr) {int res=0;for(int i=0;i<arr.length;i++){int left=i+1,right=arr.length-i;int leftou=(left+1)/2,rightou=(right+1)/2;int leftji=left/2,rightji=right/2;res+=(leftou*rightou+rightji*leftji)*arr[i];}return res;}
}
这篇关于2021-03-09(1588. 所有奇数长度子数组的和)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!