leetcode560.和为K的子数组

leetcode560.和为K的子数组

题目

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

用例

输入:nums = [1,1,1], k = 2
输出:2
输入:nums = [1,2,3], k = 3
输出:2

求解

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var subarraySum = function(nums, k) {
    const map = { 0: 1 };
    let sum=0
    let res=0
    for(let i=0;i<nums.length;i++){
        sum=sum+nums[i]
        if(map[sum-k]){
            res=res+map[sum-k]
        }
        if(map[sum]){
            map[sum]++
        }else{
            map[sum]=1
        }
    }
    return res
};
posted @ 2021-12-13 13:26  BONiii  阅读(38)  评论(0)    收藏  举报