给你一个整数数组 nums
和一个整数 k
,请你统计并返回 该数组中和为 k
的连续子数组的个数 。
JAVA(三层循环超时):
class Solution {
public int subarraySum(int[] nums, int k) {
int len=nums.length;
int count=0;
for(int left=0;left<len;left++){
for(int right=left;right<len;right++){
int sum=0;
for(int i=left;i<=right;i++){
sum+=nums[i];
}
if(sum==k){
count++;
}
}
}
return count;
}
}
JAVA(优化:两层循环):
class Solution {
public int subarraySum(int[] nums, int k) {
int count=0;
int len=nums.length;
for(int left=0;left<len;left++){
int sum=0;
for(int right=left;right<len;right++){
sum+=nums[right];
if(sum==k){
count++;
}
}
}
return count;
}
}