当前位置: 首页 > 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)。

相关文章:

  • 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协议互转工业串口网关
  • 俄伏尔加格勒机场正式更名为斯大林格勒机场
  • 科学家为AI模型设置“防火墙”,以防止被不法分子滥用
  • 发布亮眼一季度报后,东阿阿胶股价跌停:现金流隐忧引发争议
  • 王毅会见俄罗斯外长拉夫罗夫
  • 当AI开始深度思考,人类如何守住自己的慢思考能力?
  • 国家发改委:建立实施育儿补贴制度