题目概述:给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。
子数组是数组中元素的连续非空序列
解题思路:先进行前缀和处理,再暴力枚举每个子数组,并判断其和是否为k
时间复杂度:\(O(n^2)\)
代码:
class Solution {
public int subarraySum(int[] nums, int k) {
int n = nums.length;
int sum[] = new int[n + 1];
for(int i = 1; i <= n; i ++)sum[i] = sum[i - 1] + nums[i - 1];
int res = 0;
for(int i = n; i >= 1; i --){
for(int j = i; j > 0; j --){
if(sum[i] - sum[j - 1] == k)res++;
}
}
return res;
}
}
标签:10,nums,int,res,sum,数组
From: https://www.cnblogs.com/dengch/p/17827596.html