minimum-size-subarray-sum 1.0.0
Minimum Size Subarray Sum
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1#include <bits/stdc++.h>
2
3using namespace std;
4
6{
7public:
8 int minSubArrayLen(int target, vector<int>& nums)
9 {
10 int start = 0, end = 0, current_sum = nums[0], minimal_size = 0;
11 while (start < (int)nums.size() && end < (int)nums.size())
12 {
13 // cout << "current window - start: " << start << "; end: " << end << "; sum: " << current_sum << endl;
14
15 if (current_sum >= target)
16 {
17 if (minimal_size == 0)
18 minimal_size = end - start + 1;
19 else
20 minimal_size = min(minimal_size, end - start + 1);
21
22 // shrink the window
23 current_sum -= nums[start];
24 start++;
25 }
26 else // expand the window
27 {
28 end++;
29 if (end < (int)nums.size())
30 current_sum += nums[end];
31 }
32 }
33 return minimal_size;
34 }
35};
36
37int main()
38{
39 vector<int> nums = {2,3,1,2,4,3};
40 int target = 7;
41 cout << Solution().minSubArrayLen(target, nums) << endl;
42 return 0;
43}
int minSubArrayLen(int target, vector< int > &nums)
Definition main.cpp:8
int main()
Definition main.cpp:37