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

力扣HOT100——560.和为k的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 

子数组是数组中元素的连续非空序列。

示例 1:

输入:nums = [1,1,1], k = 2
输出:2

思路:

前缀和+哈希。我们可以先利用一个数组s存储原数组的前缀和,在遍历s的时候利用一个哈希tmp来记录当前元素s[i]出现的次数,同时寻找它们tmp中是否存在是s[i]-k,如果存在,则答案ans加上tmp[s[i]-k],即s[i]-k此前出现的次数。

class Solution {
public:int subarraySum(vector<int>& nums, int k) {int ans=0;vector<int> s(nums.size()+1);for(int i=0;i<nums.size();i++){s[i+1]=s[i]+nums[i];}unordered_map<int,int> tmp;for(int x:s){ans+=tmp.contains(x-k)?tmp[x-k]:0;tmp[x]++;}return ans;}
};
复杂度分析
  • 时间复杂度:O(n),其中 n 为 nums 的长度。
  • 空间复杂度:O(n)。
http://www.dtcms.com/a/134219.html

相关文章:

  • Kaggle竞赛——商店销售时序预测(Store Sales)
  • ROS---<angles>
  • 分布式锁+秒杀异步优化
  • 从零开始:Python运行环境之VSCode与Anaconda安装配置全攻略 (1)
  • 4.vtk光照vtkLight
  • 使用Python爬取豆瓣电影Top250并保存到Excel完整教程
  • 测试基础笔记第四天(html)
  • 交换机与路由器的默契配合:它们的联系与区别
  • Zookeeper 命令返回数据的含义
  • 【软考-架构】13.4、质量属性-架构评估
  • 【HDFS入门】HDFS核心组件Failover Controller:高可用保障机制解析
  • K8s 生产落地
  • 计算机网络:实验五路由器的应用
  • 360壁纸如何卸载
  • 阿里云 MSE Nacos 发布全新“安全防护”模块,简化安全配置,提升数据保护
  • 关于SQLite轻量数据库的研究
  • 控制理论与应用Latex模版/中文Latex
  • 教你如何创建Maven项目
  • 基于uniapp 实现画板签字
  • (EtherCAT 转 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • day26 学习笔记
  • 关于vxe-select得filter-method 自定义方法得使用,忽略大小写匹配
  • 【LLM】Llama-Index 架构
  • 【三维重建与生成】GenFusion:SVD统一重建和生成
  • Java版本对应关系表
  • 如何使用ChatGPT撰写短视频爆款文案
  • ping 命令的用途与功能
  • 【刷题2025】高级数据结构(并查集+优先队列+图论)
  • <uniapp><websocket><http>基于uniapp,手机客户端通过websocket进行数据通讯(二维码扫码数据)
  • 【Axure视频教程】标准金额格式转换