【前缀和+哈希】LCR 010. 和为 K 的子数组

求解代码

java 复制代码
public int subarraySum(int[] nums, int k) {
        // 哈希表:key=前缀和,value=该前缀和出现的次数
        HashMap<Integer, Integer> map = new HashMap<>();

        int sum = 0; // 记录当前遍历到的前缀和
        int ans = 0;

        // 初始化前缀和为0的情况出现了1次
        map.put(0, 1);

        for (int i = 0; i < nums.length; i++) {
            sum += nums[i]; // 累加当前元素,得到当前前缀和sum

            // 查找是否存在sum - k,存在则累加次数到结果
            if (map.containsKey(sum - k)) {
                ans += map.get(sum - k);
            }

            // 将当前前缀和存入哈希表:若已存在则次数+1,否则设为1
            map.put(sum, map.getOrDefault(sum, 0) + 1);
        }
        return ans;
    }
相关推荐
Evand J1 分钟前
【MATLAB例程】自适应渐消扩展卡尔曼滤波(AFEKF)三维雷达目标跟踪|效果已调优,附下载链接和运行结果,代码直接运行即可
开发语言·算法·matlab·目标跟踪·卡尔曼滤波·自适应滤波·代码定制
插件开发41 分钟前
矢量路径运算如何选GPU技术?——适用算法对比及OpenGL/Direct3D/CUDA选型指南
算法·3d
8Qi81 小时前
LeetCode 72:编辑距离(Edit Distance)—— 题解
算法·leetcode·职场和发展·动态规划
SoftLipaRZC1 小时前
顺序表的应用:通讯录项目与经典算法实战
算法
8Qi81 小时前
LeetCode 583. 两个字符串的删除操作
算法·leetcode·职场和发展·动态规划
tigershang1 小时前
卡尔曼滤波:不确定世界中的最优估计
人工智能·算法·机器学习
一个儒雅随和的男子1 小时前
限流算法详细剖析
java·服务器·算法
工业胶粘剂技术2 小时前
单组分高温环氧结构胶 K-EP280 完整技术参数与工程选型分析
算法·制造
小欣加油3 小时前
Leetcode31 下一个排列
数据结构·c++·算法·leetcode·职场和发展
_日拱一卒4 小时前
LeetCode:39组合总和
java·算法·leetcode·职场和发展