国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[Leetcode] Minimum Size Subarray Sum 最短子串和

wthee / 745人閱讀

摘要:雙指針復雜度時間空間思路我們用兩個指針維護一個窗口,保證這個窗口的內的和是小于目標數的。如果和仍小于目標數,則將窗口右邊界右移。另外,如果左邊界大于右邊界時,說明最短子串的長度已經小于等于,我們就不用再查找了。

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.

雙指針 復雜度

時間 O(N) 空間 O(1)

思路

我們用兩個指針維護一個窗口,保證這個窗口的內的和是小于目標數的。如果新來的數加上后,和大于目標,則比較下當前窗口長度和最短窗口長度,窗口左邊界右移。如果和仍小于目標數,則將窗口右邊界右移。注意這里退出的條件,右邊界是小于等于長度,因為我們窗口到了最右側時,還需要繼續左移左邊界來看有沒有更優的解法。另外,如果左邊界大于右邊界時,說明最短子串的長度已經小于等于1,我們就不用再查找了。

注意

循環的判斷條件是right <= nums.length && left <= right

代碼
public class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        if(nums.length == 0) return 0;
        int left = 0, right = 0, sum = 0, minLen = nums.length + 1;
        while(right <= nums.length && left <= right){
            if(sum < s){
                // 當右邊界等于長度時,我們要多等一輪,等待左邊界左移,這時候不能加
                if(right < nums.length){
                    sum += nums[right];
                }
                right++;
            } else {
                // 當和大于等于目標時,檢查長度并左移邊界
                minLen = Math.min(minLen, right - left);
                sum -= nums[left];
                left++;
            }
        }
        return minLen <= nums.length ? minLen : 0;
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66174.html

相關文章

  • [LeetCode] 209. Minimum Size Subarray Sum (Easy ve

    Problem 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 isnt one, return 0 instead. Example: Input: s =...

    HelKyle 評論0 收藏0
  • LeetCode 209:最小長度的子數組 Minimum Size Subarray Sum

    摘要:如果不存在符合條件的連續子數組,返回。示例輸入輸出解釋子數組是該條件下的長度最小的連續子數組。截取從索引到索引的數組,該數組之和若小于,則繼續后移,直到大于等于。記錄與差值返回的目標數。之后后移一位繼續刷新新數組。 公眾號: 愛寫bug(ID:icodebugs)作者:愛寫bug 給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組...

    jas0n 評論0 收藏0
  • LeetCode 209:最小長度的子數組 Minimum Size Subarray Sum

    摘要:如果不存在符合條件的連續子數組,返回。示例輸入輸出解釋子數組是該條件下的長度最小的連續子數組。截取從索引到索引的數組,該數組之和若小于,則繼續后移,直到大于等于。記錄與差值返回的目標數。之后后移一位繼續刷新新數組。 公眾號: 愛寫bug(ID:icodebugs)作者:愛寫bug 給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組...

    JayChen 評論0 收藏0
  • LeetCode 209:最小長度的子數組 Minimum Size Subarray Sum

    摘要:如果不存在符合條件的連續子數組,返回。示例輸入輸出解釋子數組是該條件下的長度最小的連續子數組。截取從索引到索引的數組,該數組之和若小于,則繼續后移,直到大于等于。記錄與差值返回的目標數。之后后移一位繼續刷新新數組。 算法是一個程序的靈魂 公眾號:愛寫bug(ID:icodebugs)作者:愛寫bug 給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的...

    wow_worktile 評論0 收藏0
  • LeetCode 209:最小長度的子數組 Minimum Size Subarray Sum

    摘要:如果不存在符合條件的連續子數組,返回。示例輸入輸出解釋子數組是該條件下的長度最小的連續子數組。截取從索引到索引的數組,該數組之和若小于,則繼續后移,直到大于等于。記錄與差值返回的目標數。之后后移一位繼續刷新新數組。 算法是一個程序的靈魂 公眾號:愛寫bug(ID:icodebugs)作者:愛寫bug 給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的...

    Vixb 評論0 收藏0

發表評論

0條評論

wthee

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<