给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。
示例 1 :
输入:nums = [1,1,1], k = 2
输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。
说明 :
数组的长度为 [1, 20,000]。
数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。
方法一:暴力法:超出时间限制
var subarraySum = function(nums, k) {
var count = 0;
for (var start = 0; start < nums.length; start++) {
for (var end = start + 1; end <= nums.length; end++) {
var sum = 0;
for (var i = start; i < end; i++)
sum += nums[i];
if (sum == k)
count++;
}
}
return count;
};
方法二:
var subarraySum = function(nums, k) {
var count = 0;
for (var start = 0; start < nums.length; start++) {
var sum=0;
for (var end = start; end < nums.length; end++) {
sum+=nums[end];
if (sum == k)
count++;
}
}
return count;
};