Leetcode 560. 和为 K 的子数组

560. 和为 K 的子数组 - 力扣(LeetCode)

java 复制代码
class Solution {
    /**
    思路:用一个map记录前缀和,key是数值合m,value是这个m出现了n次。
    这样遍历数组,比如i从0开始,遍历到i=j时,算下下标从0-j所有元素和是多少,比如是m,
    然后算下m-k这个数值有没有出现过。
    如果出现过c次,那就是之前有c种子串和是m-k,那就对应有c种子串是k的情况;
    如果没有出现过,那就是把数值和是m的放进map,用于下次计算
     */
    public int subarraySum(int[] nums, int k) {
        Map<Integer,Integer> prefixSum=new HashMap<>();
        int res=0;
        int cnt=0;
        prefixSum.put(0,1);
        for(int i=0;i<nums.length;i++){
            cnt+=nums[i];
            // map的判断key是否存在使用containsKey,这个好好记忆一下
            if(prefixSum.containsKey(cnt-k)){
                res+=prefixSum.get(cnt-k);
            }
            if(prefixSum.get(cnt)==null){
                prefixSum.put(cnt,1);
            } else {
                prefixSum.put(cnt,prefixSum.get(cnt)+1);
            }
        }
        return res;
    }
}
相关推荐
水木流年追梦15 分钟前
agent面试必备31- AI Agent 核心进阶:工具路由(Tool Routing)
数据库·人工智能·oracle·面试·职场和发展·embedding
星空露珠24 分钟前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
笨笨没好名字27 分钟前
Leetcode刷题python3版第一周(下)
linux·算法·leetcode
手写码匠36 分钟前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc
luj_17681 小时前
草酸与烟酸对消化及糖代谢的影响解析
服务器·c语言·开发语言·经验分享·算法
青风971 小时前
16-ADAPTRACK:基于自适应阈值的多目标跟踪匹配算法
人工智能·算法·目标跟踪
汤姆yu1 小时前
macOS系统下Aider完整安装、配置与实战使用教程
大数据·人工智能·算法·macos·github·copilot
Sam09271 小时前
【AI 算法精讲 14】TF-IDF:词频与逆文档频率
人工智能·python·算法·ai
AI科技星2 小时前
拓扑生命系统确定性理论:基于32维流形的遗传密码起源与衰老动力学( 中英双语顶刊终稿·标准数学符号)
开发语言·网络·人工智能·算法·机器学习·乖乖数学·全域数学
编程圈子2 小时前
电机驱动开发学习18. SVPWM空间矢量调制算法详解与实现
驱动开发·学习·算法