数组560. 和为K的子数组
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组560. 和为K的子数组相关的知识,希望对你有一定的参考价值。
题目:
解答:
可以在考虑不同的 endend 的同时直接找到总和,而不是考虑所有 startstart 和 endend 然后找到对应的每个子数组的总和。
我们可以选择一个特定的 start,同时迭代 end,我们可以将对应于 end 的元素添加到到目前为止形成的总和中。当 sum 等于所需的 k 值时,我们可以更新 count 值。同时迭代每个start 索引可能的所有 end 索引。每次更新 start时需要将 sum值重置为 0。
1 class Solution { 2 public: 3 int subarraySum(vector<int>& nums, int k) 4 { 5 int count = 0; 6 for (int start = 0; start < nums.size(); ++start) 7 { 8 int sum = 0; 9 for (int end = start; end < nums.size(); ++end) 10 { 11 sum += nums[end]; 12 if (sum == k) 13 { 14 count++; 15 } 16 } 17 } 18 return count; 19 } 20 };
以上是关于数组560. 和为K的子数组的主要内容,如果未能解决你的问题,请参考以下文章