子串
...大约 1 分钟
难度说明:🟢简单🟡中等🔴困难
子串
🟡01-和为K的子数组(560)
1.题目内容
给你一个整数数组 nums
和一个整数 k
,请你统计并返回 该数组中和为 k
的子数组的个数 。
子数组是数组中元素的连续非空序列
2.题解思路
👻方法1:双层循环(暴力求解)
子数组是数组中元素的连续非空序列,因此此处目的是为了确认这个序列的起点和终点,可通过双层循环遍历实现
外层循环敲定起点i
,内层循环敲定终点j
,在这个内层遍历过程中可通过累加的方式来得到当前这个子数组的总和,将其与k进行比较,满足则res计数+1
public class Solution1 {
public int subarraySum(int[] nums, int k) {
// 定义结果
int res = 0;
// 暴力遍历
for(int i=0;i<nums.length;i++){
int currentCount = 0;
// 内层遍历是为了找到对应的值(此处j指针起点是i(表示可以是其本身))
for(int j=i;j<nums.length;j++){
currentCount += nums[j];
if(currentCount == k){
res ++;
}
}
}
// 返回结果
return res;
}
}
复杂度分析
- 时间复杂度:
- 空间复杂度:
3.复盘
Powered by Waline v3.1.3