code 560

不说废话,直接刷题。用前缀和加上哈希表,时间复杂度可以控制在 O(N)O(N)O(N).哈希表是用 O(1)O(1)O(1) 的时间做到查询。哈希表和字典差不多,或者和直接搜索差不多,但是效率非常快,就是常数时间就可以查找成功。keykeykey 是前缀和,valuevaluevalue 是该前缀和出现的次数。
preSumj−1=preSumi−kpreSumj-1=preSumi-kpreSumj−1=preSumi−k

我们就是查询 preSumj−1preSumj-1preSumj−1 是否存在,如果存在,我们就把这个答案累加到计数器里面。

cpp 复制代码
class Solution {
public:
    int subarraySum(vector<int>& nums, int k) {
        unordered_map<int, int> mp;
        mp[0] = 1;
        int preSum = 0;
        int count = 0;
        for ( auto& num: nums ) {
            preSum += num;
            if ( mp.find( preSum - k ) != mp.end() ) {
                count += mp[ preSum - k ];
            }
            mp[preSum]++;
        }
        return count;
    }
};
相关推荐
vibecoding日记4 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr21386 小时前
Verilog参数化游程编码RLE模块
算法
望易6 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
复杂网络10 小时前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
HjhIron1 天前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩1 天前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹1 天前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
vivo互联网技术1 天前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法
黄敬峰1 天前
面试必刷:从JS底层包装类到双指针,彻底搞懂字符串与回文算法
算法