LeetCode-209-長度最小的子數(shù)組

題目描述:給定一個含有 n 個正整數(shù)的數(shù)組和一個正整數(shù) target 。
找出該數(shù)組中滿足其和 ≥ target 的長度最小的 連續(xù)子數(shù)組 [nums l, numsl+1, ..., numsr-1, numsr] ,并返回其長度。如果不存在符合條件的子數(shù)組,返回 0 。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:滑動窗口
首先,判斷特殊情況,如果數(shù)組為空,直接返回0。
否則,使用滑動窗口法來判斷是否存在最小的連續(xù)子數(shù)組,具體處理邏輯如下:
首先,聲明滑動窗口的左右邊界,并用minLen記錄最小的連續(xù)子數(shù)組的長度;
遍歷數(shù)組,直到右邊界遍歷到原數(shù)組的最后一個數(shù)字位置;
計算當(dāng)前范圍的連續(xù)子數(shù)組的和,判斷當(dāng)前的和是否比target小,如果不小于,則將窗口的左邊界右移,并且判斷當(dāng)前的連續(xù)長度是否是最小的;如果小于,則將窗口的右邊界右移。
最后,判斷minLen是否已找到,如果不存在則返回0;否則,返回minLen。
【每日寄語】 人生像攀登一座山,而找山尋路,卻是一種學(xué)習(xí)的過程,應(yīng)當(dāng)在這過程中,學(xué)習(xí)篤定、冷靜,學(xué)習(xí)如何從慌亂中找到生機。