class Solution {
public:
int subarraySum(vector<int>& nums, int k) {
int ans = 0;
// 核心思想: 从第一个数开始遍历, 以此为开始的点,然后以此向后累加,
// 若等于k,那么记录.停止起点,把起点换成原来起点的下一个,继续进行.
for (int i = 0; i < nums.size(); i++) {
// start : 起点 sum : 局部和
int start = i;
int sum = 0;
// 首先要防止起点越界, 因为在while循环里对起点进行了自加1 操作
while (start < nums.size()) {
sum += nums[start++];
if (sum == k) {
ans++;
}
}
}
return ans;
}
};
leetcode560. 和为K的子数组
最新推荐文章于 2025-06-22 15:54:51 发布