560. 和为 K 的子数组 --力扣 --JAVA

题目

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 

子数组是数组中元素的连续非空序列。

解题思路

  1. 数组项累加可以使用双层循环进行遍历;
  2. 子数组的长度是不确定的,也可能存在1 + 1 = 2和1 + 1 - 1 + 1 = 2,所以不能在第一次成立的时候就退出第二层循环;

代码展示

class Solution {
    public int subarraySum(int[] nums, int k) {
        int count = 0;
        for (int i = 0; i < nums.length; i++){
            int sum = nums[i];
            for (int j = i + 1; j < nums.length; j++){
                if(sum == k){
                    count++;
                }
                sum += nums[j];
            }
            if(sum == k){
                count++;
            }
        }
        return count;
    }
}

你可能感兴趣的:(力扣练习,算法,数据结构)