209. Minimum Size Subarray Sum

LeetCode

 743

 48

 

209. Minimum Size Subarray Sum

DescriptionHintsSubmissionsDiscussSolution

Pick One


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.

Example: 

Input: s = 7, nums = [2,3,1,2,4,3]
Output: 2
Explanation: the subarray [4,3] has the minimal length under the problem constraint.

Follow up:

If you have figured out the O(n) solution, try coding another solution of which the time complexity is O(n log n). 


Seen this question in a real interview before?  No

Thanks for your feedback.


Java

 

1

class Solution {

2

    public int minSubArrayLen(int s, int[] nums) {

3

        

4

        int minSum = 0;

5

        int left = 0;

6

        int right =0;

7

        int minCount = Integer.MAX_VALUE;

8

        while( right < nums.length){

9

            

10

            if(minSum + nums[right]>=s){

11

                if(left == right){

12

                    return 1;

13

                }

14

                if(right-left+1<minCount){

15

                    minCount = right-left+1;

16

                }

17

                minSum -= nums[left++];

18

                

19

            }else{

20

                minSum += nums[right];

21

                right++;

22

            }

23

        }

24

        if(minCount == Integer.MAX_VALUE){

25

            return 0;

26

        }

27

       return minCount;

28

        

29

    }

30

}

  Custom Testcase

( Contribute  )

 Run Code Submit Solution

Notes

|||

 

Type here...(Markdown is enabled)

Copyright © 2018 LeetCode

Contact Us  |  Jobs  |  Bug Bounty  |  Students  |  FAQ  |  Terms  |  Privacy Policy      United States

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值