209. Minimum Size Subarray Sum

来源:互联网 发布:sails.js 中文文档 编辑:程序博客网 时间:2024/06/10 05:17

题目

Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous 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.

思路

本题给出一个O(n)的思路。这道题目需要维护两个数组索引i,j。通过不断地增加i或增加j来判断是否有满足条件的值。具体思路看代码实现。

代码

class Solution {public:    int minSubArrayLen(int s, vector<int>& nums) {        int sum=0,i=0,j=0,min_len=INT_MAX;        while(j<nums.size()){            sum+=nums[j++];            while(sum>=s)            {                min_len = min(min_len,j-i);                sum-=nums[i++];            }        }        return min_len==INT_MAX?0:min_len;         }};
原创粉丝点击