|
1 | 1 | [#0560-subarray-sum-equals-k]
|
2 |
| -= 560. Subarray Sum Equals K |
| 2 | += 560. 和为 K 的子数组 |
3 | 3 |
|
4 |
| -{leetcode}/problems/subarray-sum-equals-k/[LeetCode - Subarray Sum Equals K^] |
| 4 | +https://leetcode.cn/problems/subarray-sum-equals-k/[LeetCode - 560. 和为 K 的子数组 ^] |
5 | 5 |
|
6 |
| -Given an array of integers and an integer **k**, you need to find the total number of continuous subarrays whose sum equals to **k**. |
| 6 | +给你一个整数数组 `nums` 和一个整数 `k` ,请你统计并返回 _该数组中和为 `k` 的子数组的个数_。 |
7 | 7 |
|
8 |
| -*Example 1:* |
| 8 | +子数组是数组中元素的连续非空序列。 |
9 | 9 |
|
10 |
| -[subs="verbatim,quotes,macros"] |
11 |
| ----- |
12 |
| -*Input:* nums = [1,1,1], k = 2 |
13 |
| -*Output:* 2 |
14 |
| ----- |
| 10 | +*示例 1:* |
| 11 | + |
| 12 | +.... |
| 13 | +输入:nums = [1,1,1], k = 2 |
| 14 | +输出:2 |
| 15 | +.... |
| 16 | + |
| 17 | +*示例 2:* |
| 18 | + |
| 19 | +.... |
| 20 | +输入:nums = [1,2,3], k = 3 |
| 21 | +输出:2 |
| 22 | +.... |
15 | 23 |
|
16 |
| -*Note:* |
| 24 | +*提示:* |
17 | 25 |
|
18 |
| -. The length of the array is in range [1, 20,000]. |
19 |
| -. The range of numbers in the array is [-1000, 1000] and the range of the integer *k* is [-1e7, 1e7]. |
| 26 | +* `1 \<= nums.length \<= 2 * 10^4^` |
| 27 | +* `+-1000 <= nums[i] <= 1000+` |
| 28 | +* `-10^7^ \<= k \<= 10^7^` |
20 | 29 |
|
21 |
| -== 解题分析 |
| 30 | +
|
| 31 | +== 思路分析 |
22 | 32 |
|
23 | 33 | 背后的想法如下:如果累积总和(由 `sum[i]` 表示加到 `i^th^` 的和)最多两个指数是相同的,那么这些元素之间的元素总和为零。进一步扩展相同的想法,如果累计总和,在索引 `i` 和 `j` 处相差 `k`,即 `sum[i]−sum[j]=k`,则位于索引 `i` 和 `j` 之间的元素之和是 `k`。
|
24 | 34 |
|
@@ -47,15 +57,35 @@ image::images/0560-08.png[{image_attr}]
|
47 | 57 | image::images/0560-09.png[{image_attr}]
|
48 | 58 |
|
49 | 59 | [[src-0560]]
|
| 60 | +[tabs] |
| 61 | +==== |
| 62 | +一刷:: |
| 63 | ++ |
| 64 | +-- |
50 | 65 | [{java_src_attr}]
|
51 | 66 | ----
|
52 | 67 | include::{sourcedir}/_0560_SubarraySumEqualsK.java[tag=answer]
|
53 | 68 | ----
|
| 69 | +-- |
54 | 70 |
|
| 71 | +二刷:: |
| 72 | ++ |
| 73 | +-- |
55 | 74 | [{java_src_attr}]
|
56 | 75 | ----
|
57 | 76 | include::{sourcedir}/_0560_SubarraySumEqualsK_2.java[tag=answer]
|
58 | 77 | ----
|
| 78 | +-- |
| 79 | +
|
| 80 | +三刷:: |
| 81 | ++ |
| 82 | +-- |
| 83 | +[{java_src_attr}] |
| 84 | +---- |
| 85 | +include::{sourcedir}/_0560_SubarraySumEqualsK_3.java[tag=answer] |
| 86 | +---- |
| 87 | +-- |
| 88 | +==== |
59 | 89 |
|
60 | 90 |
|
61 | 91 | == 参考资料
|
|
0 commit comments