【每日一题】LeetCode 560. 和为 K 的子数组 TypeScript

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

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

示例 1:

复制代码
输入:nums = [1,1,1], k = 2
输出:2

示例 2:

复制代码
输入:nums = [1,2,3], k = 3
输出:2

提示:

  • 1 <= nums.length <= 2 * 104
  • -1000 <= nums[i] <= 1000
  • -107 <= k <= 107

复制代码
function subarraySum(nums: number[], k: number): number {
    const map = new Map<number,number>()
    map.set(0,1)
    let count = 0
    let sum = 0
    for(const num of nums){
        sum+=num
        const target = sum-k
        if(map.has(target)){
            count += map.get(target)

        }
        map.set(sum,(map.get(sum)||0)+1)
    }
    return count
};

共勉