Description
Given an array of integers nums
and an integer k
, return the total number of subarrays whose sum equals to k
.
A subarray is a contiguous non-empty sequence of elements within an array.
Example 1:
Input: nums = [1,1,1], k = 2
Output: 2
Example 2:
Input: nums = [1,2,3], k = 3
Output: 2
Constraints:
1 <= nums.length <= 2 * 104
-1000 <= nums[i] <= 1000
-107 <= k <= 107
Code
Prefix Sum O(n2), TLE
觀念:subarray [i, j]
的 sum 為 prefixSum[j] - prefixSum[i-1]
。
要想怎麼優化。
Prefix Sum with Hash O(n)
優化的方法就是使用 unordered_map
,如此一來就不用使用 for loop 一個一個相減來檢查。
和 Contiguous Array 同樣觀念,然後再結合 prefix sum。
Source