【前缀和+哈希】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;
    }
相关推荐
别动我齐刘海24 分钟前
ROS2 Jazzy + C++ 实战路线——进阶学习3
c++·人工智能·vscode·python·算法·机器学习·机器人
zhangfeng113330 分钟前
《从“人工适配“到“智能生成“:KernelSwift 跨国产芯片算子迁移全栈方案解读》 —— 强调范式跃迁和跨硬件属性,适合偏架构分析的写法
人工智能·算法·华为·ai编程·npu
0+11133 分钟前
算法 --滑动窗口
c++·算法·leetcode
reikocao1 小时前
大场景下 Hessian 特征值放大与退化检测
算法
hetao17338371 小时前
2026-09-18 hetao1733837 的刷题记录
c++·算法
wuyk5552 小时前
21.计数排序:不用比较的“空间换时间”排序算法
python·算法·排序算法
Rabitebla2 小时前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
库玛西2 小时前
数据结构与算法之美:树、森林与二叉树全解析
c语言·数据结构·笔记·考研·算法·学习方法
木井巳2 小时前
【记忆化搜索】最长递增子序列
java·算法·leetcode·深度优先·剪枝·推荐算法
东方护航数据恢复(深圳)2 小时前
本地小算力设备数据恢复经典案例实操全解_东方护航数据恢复深圳店
大数据·服务器·算法·ai·gpu算力