【数组】560. 和为K的子数组

2021-01-29 17:14

阅读:784

标签:turn   mamicode   元素   code   重置   star   不同   end   tor   

题目:

技术图片

 

 

解答:

可以在考虑不同的 endend 的同时直接找到总和,而不是考虑所有 startstart 和 endend 然后找到对应的每个子数组的总和。

我们可以选择一个特定的 start,同时迭代 end,我们可以将对应于 end 的元素添加到到目前为止形成的总和中。当 sum 等于所需的 k 值时,我们可以更新 count 值。同时迭代每个start 索引可能的所有 end 索引。每次更新 start时需要将 sum值重置为 0。

 1 class Solution {
 2 public:
 3     int subarraySum(vectorint>& nums, int k) 
 4     {
 5         int count = 0;
 6         for (int start = 0; start start)
 7         {
 8             int sum = 0;
 9             for (int end = start; end end)
10             {
11                 sum += nums[end];
12                 if (sum == k)
13                 {
14                     count++;
15                 }
16             }
17         }
18         return count;
19     }
20 };

 

【数组】560. 和为K的子数组

标签:turn   mamicode   元素   code   重置   star   不同   end   tor   

原文地址:https://www.cnblogs.com/ocpc/p/12831441.html


评论


亲,登录后才可以留言!