LeetCode hot 100 —560. 和为 K 的子数组
给你一个整数数组nums和一个整数k请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。示例 1输入nums [1,1,1], k 2输出2示例 2输入nums [1,2,3], k 3输出2提示1 nums.length 2 * 104-1000 nums[i] 1000-107 k 107不知道为什么做了滑动窗口和双指针以后总想用left and right来做很多题目但在第一版本敲代码的时候就知道这里不适合用了。首先是数组是无序的左移和右移并不能完全的对应减和加所以带来的衍生点是比如说现在找到了一个合适的子数组我的Left和 right 要怎么更新我完全没有头绪然后我想到了差分。也是当时练习csp的入门算法。和GPT对了一下思路除了差分还有一个东西叫前缀和算是差分的进阶版太久没用了已经不是我的第一反应了....也就是前n个数字的和是多少假设定义prefix[i] nums 前 i 个数字之和那么从下标left到right的子数组和可以表示成prefix[right 1] - prefix[left]题目要求它等于kprefix[right 1] - prefix[left] k把这个式子移动一下prefix[left] prefix[right 1] - k现在先别急着写代码只思考当我从左向右计算到一个新的前缀和current时我需要在之前出现过的前缀和里寻找什么值前缀和为current - k的再进一步思考题目问的是子数组的“个数”如果要找的那个前缀和值在前面出现了多次意味着什么尝试手算nums [1, -1, 1] k 1它的前缀和记得最开始还有一个“尚未选择任何数字”的前缀和0是0, 1, 0, 1当你走到最后一个前缀和1时需要寻找1 - k 0此前0出现了不止一次。每一个此前出现的0都对应一个以当前位置结尾、和为1的子数组。因此你下一步只需要回答两个问题如何一边遍历一边记录此前每个前缀和出现了多少次如何快速查询当前前缀和 - k此前出现了多少次想清楚这两点就不再需要控制left和right了。这里的思维转换是不要直接维护一个窗口而是把每个可能的左边界压缩成“此前出现过的前缀和统计”。最后的代码如下class Solution: def subarraySum(self, nums: List[int], k: int) - int: # 构造前缀和 prefix_cnt {0: 1} 这个也算是看了GPT给的答案以后受到的大启发我给的一个注释和思维解释是 这道题目需要前缀和但为什么不使用常规的前缀和数组呢 - 因为我最后需要统计的是res_count也就是我需要统计的是个数 我知道了当前的前缀和为current, 我需要找的值是current - k,我需要统计的东西是current - k 出现了多少次所以这里用的是一个dict的形式可以更快的知道某个前缀和已经出现的次数. - 为什么要初始化一个0 : 1确保nums[0]也可以被划入. 比如当前current k那么就是nums[0:index 1]可以计入一次但是如果没有0这个答案不会被计入。 res 0 prefix_sum 0 #记录前缀和 for num in nums: prefix_sum num res prefix_cnt.get(prefix_sum - k, 0) dict.get(key, default) 表示 - 如果字典中存在 key返回对应的值。 - 如果不存在返回 default。 prefix_cnt[prefix_sum] ( prefix_cnt.get(prefix_sum, 0) 1 ) return res总结一下感觉GPT启发的核心是先找准算法结构用什么。双指针还是我想到的差分及其进阶版的前缀和从答案反推数据结构数据结构是统计上面的优化什么样的数据结构载体可以更快的得到答案比如这里如果用前缀和数组的话每遇到一个前缀和就要去统计current - k的出现次数时间开销肯定会加大的

相关新闻

零代码有声书制作:用ebook2audiobook轻松实现电子书转语音

零代码有声书制作:用ebook2audiobook轻松实现电子书转语音

零代码有声书制作:用ebook2audiobook轻松实现电子书转语音 【免费下载链接】ebook2audiobook Generate audiobooks from e-books, voice cloning & 1158 languages! 项目地址: https://gitcode.com/GitHub_Trending/eb/ebook2audiobook 还在为制作有声书…

2026/10/21 1:36:26 阅读更多 →
Glean部署教程:Docker Compose一键启动,轻松管理服务依赖

Glean部署教程:Docker Compose一键启动,轻松管理服务依赖

Glean部署教程:Docker Compose一键启动,轻松管理服务依赖 【免费下载链接】glean A self-hosted RSS reader and personal knowledge management tool. 项目地址: https://gitcode.com/gh_mirrors/glean8/glean Glean是一款自托管的RSS阅读器和个…

2026/10/20 4:41:09 阅读更多 →
老板该看的工厂排产管理(四):生产日历不是考勤表,它决定工厂真实产能和交期底线

老板该看的工厂排产管理(四):生产日历不是考勤表,它决定工厂真实产能和交期底线

很多老板看生产计划时,第一眼会看订单、看设备、看交期,很少第一眼去看生产日历。 因为生产日历看起来太基础了。 不就是设置一下班次吗? 不就是告诉系统哪天上班、哪天休息吗? 不就是把早班、中班、晚班维护进去吗&#xff1…

2026/10/19 9:24:25 阅读更多 →

最新新闻

如何用 Turing Smart Screen 打造 PC 系统监控副屏:新手完整上手指南

如何用 Turing Smart Screen 打造 PC 系统监控副屏:新手完整上手指南

如何用 Turing Smart Screen 打造 PC 系统监控副屏:新手完整上手指南 【免费下载链接】turing-smart-screen-python Unofficial Python system monitor and library for small IPS USB-C displays like Turing Smart Screen / TURZX 项目地址: https://gitcode.co…

2026/10/21 1:36:25 阅读更多 →
如何利用 Shizuku 解锁 Android 高级功能:2025 年最全面的非 Root 权限应用指南 [特殊字符]

如何利用 Shizuku 解锁 Android 高级功能:2025 年最全面的非 Root 权限应用指南 [特殊字符]

如何利用 Shizuku 解锁 Android 高级功能:2025 年最全面的非 Root 权限应用指南 🚀 Shizuku 是一款革命性的 Android 工具,它允许普通应用在非 Root 设备上通过 ADB 获取提升权限,直接调用系统 API。本指南将详细介绍如何安装、配…

2026/10/21 1:36:25 阅读更多 →
如何给 Madeira 做性能排查:从热节流到内存墙的完整指南

如何给 Madeira 做性能排查:从热节流到内存墙的完整指南

如何给 Madeira 做性能排查:从热节流到内存墙的完整指南 【免费下载链接】Madeira Run x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT 项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira Madeira 是一个在越狱前的 iOS 26 上直接…

2026/10/21 1:36:25 阅读更多 →
副屏秒变实时仪表盘:Turing Smart Screen 监控指南

副屏秒变实时仪表盘:Turing Smart Screen 监控指南

副屏秒变实时仪表盘:Turing Smart Screen 监控指南 【免费下载链接】turing-smart-screen-python Unofficial Python system monitor and library for small IPS USB-C displays like Turing Smart Screen / TURZX 项目地址: https://gitcode.com/GitHub_Trending…

2026/10/21 1:36:25 阅读更多 →
戴森球计划蓝图怎么导入?FactoryBluePrints 工厂布局蓝图库新手完整指南

戴森球计划蓝图怎么导入?FactoryBluePrints 工厂布局蓝图库新手完整指南

戴森球计划蓝图怎么导入?FactoryBluePrints 工厂布局蓝图库新手完整指南 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 传送带堵成一坨、制造台一通电就进入应…

2026/10/21 1:36:25 阅读更多 →
戴森球计划工厂蓝图仓库:3步装好,产线开箱即用

戴森球计划工厂蓝图仓库:3步装好,产线开箱即用

戴森球计划工厂蓝图仓库:3步装好,产线开箱即用 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 凌晨两点还在对着传送带发呆,数着分拣器该…

2026/10/21 1:35:24 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →