首页 > 学院 > 开发设计 > 正文

209. Minimum Size Subarray Sum

2019-11-08 02:17:13
字体:
来源:转载
供稿:网友

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.

解题思路:移动两个指针,指针之间的窗口保持比s大,通过移动两个指针寻找最小的size。

public class Solution { public int minSubArrayLen(int s, int[] nums) { int res = Integer.MAX_VALUE; int i = 0, j = 0, sum = 0; while (j < nums.length) { sum += nums[j++]; while (sum >= s) { res = Math.min(res, j-i); sum -= nums[i++]; } } return res == Integer.MAX_VALUE ? 0 : res; }}class Solution {public: int minSubArrayLen(int s, vector<int>& nums) { int res = INT_MAX; int i = 0, j = 0, sum = 0; while (j < nums.size()) { sum += nums[j++]; while (sum >= s) { res = min(res, j-i); sum -= nums[i++]; } } return res == INT_MAX ? 0 : res; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表