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].
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subarray-sum-equals-k
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目与523相似
class Solution {
public int subarraySum(int[] nums, int k) {
int count=0;
int []sums=new int[nums.length];
sums[0]=nums[0];
for(int i=1;i<nums.length;i++) {
sums[i]=sums[i-1]+nums[i];//防止超时的方法
}
for(int i=0;i<nums.length;i++) {
if(nums[i]==k) {
count++;
}
for(int j=i+1;j<nums.length;j++) {
if((sums[j]-sums[i]+nums[i])==k) {
count++;
}
}
}
return count;
}
}