Given an array of positive integers nums and an integer k,
return true if nums has a continuous subarray whose sum equals k.
Examples:
nums = [1,2,3,4], k = 6 → true
(subarray[1,2,3])nums = [1,2,3,4], k = 8 → false
(no continuous subarray sums to 8)nums = [1], k = 6 → false
这题重点在于:
✅ 数组全是 正数 → 可以使用 滑动窗口(双指针)
✅ 目标是找到 连续子数组 的和是否等于 k
✅ 正数意味着窗口左指针只会右移,右指针扩张即可
思路步骤:
- 右指针不断累加窗口和
cur - 若
cur > k,左指针收缩,减去对应数字 - 若
cur == k,直接返回 True - 若全程无匹配 → 返回 False
时间复杂度:O(n)
空间复杂度:O(1)
这是最经典的“正数 + 子数组和 = K”的滑动窗口模板题。
VOprep 团队长期陪同学员实战各类大厂 OA 与 VO,包括 Tiktok、Google、Amazon、Citadel、SIG 等,提供实时答案助攻、远程陪练与面试节奏提醒,帮助大家在关键时刻不卡壳。
如果你也在准备 Tiktok 或类似工程向公司,可以了解一下我们的定制助攻方案——从编程面到系统设计,全程护航上岸。
正文完