1588:所有奇数长度子数组的和
This commit is contained in:
parent
7e7163cebc
commit
c8fd3a96ba
@ -0,0 +1,75 @@
|
||||
//给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。
|
||||
//
|
||||
// 子数组 定义为原数组中的一个连续子序列。
|
||||
//
|
||||
// 请你返回 arr 中 所有奇数长度子数组的和 。
|
||||
//
|
||||
//
|
||||
//
|
||||
// 示例 1:
|
||||
//
|
||||
// 输入:arr = [1,4,2,5,3]
|
||||
//输出:58
|
||||
//解释:所有奇数长度子数组和它们的和为:
|
||||
//[1] = 1
|
||||
//[4] = 4
|
||||
//[2] = 2
|
||||
//[5] = 5
|
||||
//[3] = 3
|
||||
//[1,4,2] = 7
|
||||
//[4,2,5] = 11
|
||||
//[2,5,3] = 10
|
||||
//[1,4,2,5,3] = 15
|
||||
//我们将所有值求和得到 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58
|
||||
//
|
||||
// 示例 2:
|
||||
//
|
||||
// 输入:arr = [1,2]
|
||||
//输出:3
|
||||
//解释:总共只有 2 个长度为奇数的子数组,[1] 和 [2]。它们的和为 3 。
|
||||
//
|
||||
// 示例 3:
|
||||
//
|
||||
// 输入:arr = [10,11,12]
|
||||
//输出:66
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// 提示:
|
||||
//
|
||||
//
|
||||
// 1 <= arr.length <= 100
|
||||
// 1 <= arr[i] <= 1000
|
||||
//
|
||||
// Related Topics 数组 前缀和 👍 123 👎 0
|
||||
|
||||
package leetcode.editor.cn;
|
||||
|
||||
//1588:所有奇数长度子数组的和
|
||||
class SumOfAllOddLengthSubarrays {
|
||||
public static void main(String[] args) {
|
||||
//测试代码
|
||||
Solution solution = new SumOfAllOddLengthSubarrays().new Solution();
|
||||
}
|
||||
|
||||
//力扣代码
|
||||
//leetcode submit region begin(Prohibit modification and deletion)
|
||||
class Solution {
|
||||
public int sumOddLengthSubarrays(int[] arr) {
|
||||
int sum = 0;
|
||||
int n = arr.length;
|
||||
for (int start = 0; start < n; start++) {
|
||||
for (int length = 1; start + length <= n; length += 2) {
|
||||
int end = start + length - 1;
|
||||
for (int i = start; i <= end; i++) {
|
||||
sum += arr[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
//leetcode submit region end(Prohibit modification and deletion)
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
<p>给你一个正整数数组 <code>arr</code> ,请你计算所有可能的奇数长度子数组的和。</p>
|
||||
|
||||
<p><strong>子数组</strong> 定义为原数组中的一个连续子序列。</p>
|
||||
|
||||
<p>请你返回 <code>arr</code> 中 <strong>所有奇数长度子数组的和</strong> 。</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>示例 1:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>arr = [1,4,2,5,3]
|
||||
<strong>输出:</strong>58
|
||||
<strong>解释:</strong>所有奇数长度子数组和它们的和为:
|
||||
[1] = 1
|
||||
[4] = 4
|
||||
[2] = 2
|
||||
[5] = 5
|
||||
[3] = 3
|
||||
[1,4,2] = 7
|
||||
[4,2,5] = 11
|
||||
[2,5,3] = 10
|
||||
[1,4,2,5,3] = 15
|
||||
我们将所有值求和得到 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58</pre>
|
||||
|
||||
<p><strong>示例 2:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>arr = [1,2]
|
||||
<strong>输出:</strong>3
|
||||
<strong>解释:</strong>总共只有 2 个长度为奇数的子数组,[1] 和 [2]。它们的和为 3 。</pre>
|
||||
|
||||
<p><strong>示例 3:</strong></p>
|
||||
|
||||
<pre><strong>输入:</strong>arr = [10,11,12]
|
||||
<strong>输出:</strong>66
|
||||
</pre>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><strong>提示:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><code>1 <= arr.length <= 100</code></li>
|
||||
<li><code>1 <= arr[i] <= 1000</code></li>
|
||||
</ul>
|
||||
<div><div>Related Topics</div><div><li>数组</li><li>前缀和</li></div></div><br><div><li>👍 123</li><li>👎 0</li></div>
|
Loading…
Reference in New Issue
Block a user