返回

leetCode-1588. 所有奇数长度子数组的和

IOS

arr = [1,2,3,4,5]
输出:38
解释:长度为 1 的子数组有:
[1],[2],[3],[4],[5]。
长度为 3 的子数组有:
[1,2,3],[2,3,4],[3,4,5]。
长度为 5 的子数组有:
[1,2,3,4,5]。
所有奇数长度子数组的和为 1 + 2 + 3 + 4 + 5 + 1 + 2 + 3 + 3 + 4 + 5 + 1 + 2 + 3 + 4 + 5 = 38 。
示例 2:

输入:arr = [1,4,2,5,3]
输出:58
解释:长度为 1 的子数组有:
[1],[4],[2],[5],[3]。
长度为 3 的子数组有:
[1,4,2],[4,2,5],[2,5,3]。
长度为 5 的子数组有:
[1,4,2,5,3]。
所有奇数长度子数组的和为 1 + 4 + 2 + 5 + 3 + 1 + 4 + 2 + 5 + 3 + 1 + 4 + 2 + 5 + 3 + 1 + 4 + 2 + 5 + 3 = 58
 

提示:

1 <= arr.length <= 100
1 <= arr[i] <= 1000

欢迎来到我们的文章探索之旅,今天我们将一起踏入一个奇妙的世界,去探寻如何求出所有奇数长度子数组的和。我们先从一个轻松愉快的例子开始吧!

现在,我们有一个正整数数组arr,我们想要找出所有可能的奇数长度子数组的和。我们先来看看什么是子数组。子数组是一个原数组中连续的子序列。举个例子,对于数组[1, 2, 3, 4, 5]来说,它的子数组包括[1]、[2]、[3]、[4]、[5]、[1, 2]、[2, 3]、[3, 4]、[4, 5]、[1, 2, 3]、[2, 3, 4]、[3, 4, 5]、[1, 2, 3, 4]、[2, 3, 4, 5]以及[1, 2, 3, 4, 5]。

现在,我们已经知道什么是子数组了,那如何求出所有奇数长度子数组的和呢?我们首先要找出所有的奇数长度子数组,然后将它们的和加起来即可。对于数组[1, 2, 3, 4, 5]来说,它的奇数长度子数组包括[1]、[2]、[3]、[4]、[5]、[1, 2, 3]、[2, 3, 4]、[3, 4, 5]、[1, 2, 3, 4, 5]。将这些子数组的和加起来,我们得到1 + 2 + 3 + 4 + 5 + 1 + 2 + 3 + 3 + 4 + 5 + 1 + 2 + 3 + 4 + 5 = 38。

现在,我们再来看看一个稍复杂一点的例子。对于数组[1, 4, 2, 5, 3]来说,它的奇数长度子数组包括[1]、[4]、[2]、[5]、[3]、[1, 4, 2]、[4, 2, 5]、[2, 5, 3]、[1, 4, 2, 5, 3]。将这些子数组的和加起来,我们得到1 + 4 + 2 + 5 + 3 + 1 + 4 + 2 + 5 + 3 + 1 + 4 + 2 + 5 + 3 + 1 + 4 + 2 + 5 + 3 = 58。

希望通过这两个例子,您已经对求出所有奇数长度子数组的和的方法有所了解。如果您还有其他问题,欢迎随时提问!