209.滑動窗口,求最短連續(xù)子數(shù)組,和sum>=num



思想:
left,right指定一個(gè)數(shù)組長度



值小于s,就讓right++,sum=sum+arr[right],擴(kuò)大窗口,直到大于s,找到滿足題意的,記錄下來

值大于s,sum=sum-left,left++,縮小窗口,直到小于s,執(zhí)行上一步。找到滿足題意的,記錄下來


class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        //滑動窗口的思想
        //一開始窗口里面沒有值的[left,right]閉空間
        int left=0,right=-1;
        int sum=0;
        int res=nums.length+1;
        while(left<nums.length){
            //如果小于s,right++,s=s+nums[right]
            if(right+1<nums.length&&sum<s){
                right++;
                sum=sum+nums[right];
            }
            else{
                sum=sum-nums[left];
                left++;
            }
            
            if(sum>=s)
                res=Math.min(res,right-left+1);
        }
        //表示沒找到
        if(res==nums.length+1)
            return 0;
        return res;
            
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容