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

Leetcode.560.和为k的子数组

原题链接:链接

代码:

class Solution {
public:int subarraySum(vector<int>& nums, int k) {int n = nums.size();vector<int> vec(n+1);for(int i = 1;i<=n;i++){vec[i] = vec[i-1]+nums[i-1];}unordered_map<int,int> hash;hash[0] = 1;int res = 0;for(int i = 1;i<=n;i++){hash[vec[i]]++;res+=hash[vec[i]-k];}return res;}
};

思路:

因为数组中元素是乱序的,所以用滑动窗口做不了,他要的是连续的子数组,是连续的,而前缀和之间的差正好是一段区间的和,满足这一要求,所以用前缀和;

至于要返回这种区间的个数,相当于在找前缀和与k之间的差值,能找到就加到答案中去,找不到该前缀和自己就成为被别人找的对象,所以可以用哈希表;

其他:

            hash[vec[i]]++;

            res+=hash[vec[i]-k];

这两行代码不可以交换顺序,否则出现下述这种样例过不了:
nums[] = {3}; k=0;

如果写反了,就会先把3放进hash中,那么结果就是3-0=3,肯定能在hash中找到这样的元素,与题目要求相悖。总之,k=0的样例都不容易通过;

参考:

链接

相关文章:

  • python基础(1) -- 基本数据类型与变量
  • SQL Server--死锁
  • SDK——如何快速上手一个接口驱动任务(以iic为例)
  • 基于springboot+vue的4S店车辆管理系统
  • vulnhub靶场之FunBox-8
  • 渗透工具CobaltStrike工具的下载和安装
  • 粤嵌—2024/5/20—三角形最小路径和(✔)
  • gRPC和ProtoBuf
  • LeetCode-105-岛屿的最大面积
  • 【Linux杂货铺】进程通信
  • 线性模型--普通最小二乘法
  • JavaFX安装与使用
  • Web开发学习总结
  • 8.什么是HOOK
  • sql查询,直接返回json数组格式
  • CAP 一致性协议及应用解析
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • git 常用命令
  • Java反射-动态类加载和重新加载
  • Python进阶细节
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 将 Measurements 和 Units 应用到物理学
  • 爬虫模拟登陆 SegmentFault
  • 排序(1):冒泡排序
  • 手写一个CommonJS打包工具(一)
  • 算法系列——算法入门之递归分而治之思想的实现
  • 【云吞铺子】性能抖动剖析(二)
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (1)常见O(n^2)排序算法解析
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (55)MOS管专题--->(10)MOS管的封装
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (SpringBoot)第七章:SpringBoot日志文件
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (五)关系数据库标准语言SQL
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)hibernate缓存
  • .aanva
  • .NET Core 中的路径问题
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .net开发时的诡异问题,button的onclick事件无效
  • /bin/bash^M: bad interpreter: No such file or directory