[leetcode] Minimum Size Subarray Sum

来源:互联网 发布:淘宝助理是做什么工作 编辑:程序博客网 时间:2024/05/18 03:06

From : https://leetcode.com/problems/minimum-size-subarray-sum/

Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return 0 instead.

For example, given the array [2,3,1,2,4,3] and s = 7,
the subarray [4,3] has the minimal length under the problem constraint.


class Solution {public:    int minSubArrayLen(int s, vector<int>& nums) {        int n = nums.size();        int result = n+1, sum = 0, left = 0, right = 0;        while (right < n) {            sum += nums[right];            while (sum >= s) {                if (right-left+1 < result) result = right-left+1;                sum -= nums[left];                left++;            }                       right++;        }        return (n && result<=n)*result; }};


0 0