码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-05-05 18:25:41      阅读:52      评论:0      收藏:0      [点我收藏+]

标签: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(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的子数组

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

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!