当前位置: 首页 > article >正文

C++速通LeetCode中等第7题-和为K的子数组(巧用前缀和)

巧用哈希表与前缀和,前缀和差为k的两个序号之间的数组就是满足条件的子数组,用哈希表来存放每个序号的前缀和。

前缀和就是头元素到当前序号子数组元素的和

class Solution {
public:
    int subarraySum(vector<int>& nums, int k) {
        unordered_map<int, int> mp;
        mp[0] = 1;
        int count = 0, pre = 0;
        for (auto& x:nums) {
            pre += x;
            if (mp.count(pre - k)) {//看有没有前缀和差为目标k的两个序号
                count += mp[pre - k];//有的话答案加上满足的前序数量
            }
            mp[pre]++;//记录每一个序号的前缀和,前缀和相等的话,map->second计数会加一
        }
        return count;
    }
};


http://www.kler.cn/a/312748.html

相关文章:

  • 常见的噪声模型+图像中噪声模型的估计+常见的滤波方法(C++)
  • 监控录音如何消除杂音?降低录音噪音的五个技巧
  • AI生活之我用AI处理Excel表格
  • C++笔记---异常
  • 计算机新手练级攻略——如何搜索问题
  • 移门缓冲支架的作用与优势
  • 视频服务器:GB28181网络视频协议
  • python使用argparse解析命令行,如何正确传入科学计数法形式的浮点数
  • 力扣100题——杂题
  • Java集合(一)
  • C++ 文件操作
  • 十、数字人IP应用方案
  • chromedriver下载与安装方法
  • react之jsx基础(2)高频使用场景
  • DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读
  • Android14请求动态申请存储权限
  • WGCAT工单系统 v1.2.1 支持导出PDF和分享创建工单功能
  • JAVA 根据开始和结束ip,计算中间的所有ip
  • 【MySQL】MySQL和Workbench版本兼容问题
  • 力扣每日一题 公交站间的距离
  • 远程访问NAS速度慢??那是因为你没用对。。。
  • 2024年9月北京docker安装+nvidia-docker
  • Clang插件演示-直接调用AI模型定义的变量完成模型推理
  • IP Source Guard技术原理与应用
  • 如何在GitHub上克隆仓库:HTTPS、SSH和GitHub CLI的区别
  • 【机器学习(五)】分类和回归任务-AdaBoost算法-Sentosa_DSML社区版