【LC】560. 和为 K 的子数组

题目描述:

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k的子数组的个数。子数组是数组中元素的连续非空序列。

示例 1:

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

示例 2:

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

题解:

前缀和+哈希表

复制代码
class Solution {
    public int subarraySum(int[] nums, int k) {
        int n = nums.length;
        int[] s = new int[n + 1];
        for (int i = 0; i < n; i++) {
            s[i + 1] = s[i] + nums[i];
        }
        int ans = 0;
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i <= n; i++) {
            ans += map.getOrDefault(s[i] - k, 0);
            map.merge(s[i], 1, Integer :: sum);
        }
        return ans;
    }
}
相关推荐
计算机学姐24 分钟前
基于SpringBoot的小区停车位管理系统
java·vue.js·spring boot·后端·mysql·spring·maven
说淑人32 分钟前
Spring Cloud & 以Gateway实现限流(自定义返回内容)
java·spring cloud·gateway·限流
柴薪之王、睥睨众生33 分钟前
(自用)Java学习-5.12(Redis,B2C电商)
java·开发语言·学习
xindafu35 分钟前
代码随想录算法训练营第三十八天|动态规划part6(完全背包2)
算法·动态规划
小鸡脚来咯38 分钟前
请求参数:Header 参数,Body 参数,Path 参数,Query 参数分别是什么意思,什么样的,分别通过哪个注解获取其中的信息
java·spring boot·后端
一只鹿鹿鹿39 分钟前
智慧能源大数据平台建设方案(PPT)
java·大数据·数据库·能源
刃神太酷啦1 小时前
类和对象(1)--《Hello C++ Wrold!》(3)--(C/C++)
java·c语言·c++·git·算法·leetcode·github
阿乾之铭1 小时前
Java后端文件类型检测(防伪造)
java·开发语言
console.log('只想发财')2 小时前
新手安装java所有工具(jdk、idea,Maven,数据库)
java·maven·intellij-idea
添砖Java中2 小时前
深入剖析缓存与数据库一致性:Java技术视角下的解决方案与实践
java·数据库·spring boot·spring·缓存·双写一致性