题目描述
Given an array of integers and an integer k, you need to find the total number of continuous subarrays whose sum equals to k.
Example 1:
Input:nums = [1,1,1], k = 2
Output: 2
Note:
The length of the array is in range [1, 20,000].
The range of numbers in the array is [-1000, 1000] and the range of the integer k is [-1e7, 1e7].
暴力解题思路
- 累加,从当前元素往后扫描,两重循环。
C++代码
class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
int size = nums.size();
int count = 0, res = 0;
for(int i = 0; i < size; i++){
res = 0;
for(int j = i; j < size; j++){
res += nums[j];
if(res == k){
count++;
}
}
}
return count;
}
};
哈希解决方法
- 累加,从当前元素往后扫描,两重循环。