数组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的子数组的主要内容,如果未能解决你的问题,请参考以下文章

560.和为k的子数组

560.和为k的子数组

LeetCode-560. 和为 K 的子数组

leetcode [560. 和为K的子数组]

leetcode [560. 和为K的子数组]

Leetcode 560.和为k的子数组