1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <vector> #include <climits> #include <algorithm> using std::vector;
class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int n = nums.size(); int left = 0; int curr_sum = 0; int res = INT_MAX;
for (int right = 0; right < n; ++right) { curr_sum += nums[right];
while (curr_sum >= target) { res = std::min(res, right - left + 1); curr_sum -= nums[left]; left++; } }
return (res == INT_MAX ? 0 : res); } };
|