209 | 長(zhǎng)度最小的子數(shù)組
寫在前面~
最近朋友面試遇到了這道題
發(fā)來和小媛一起討論的時(shí)候
突然覺得說這是一道雖然簡(jiǎn)單,但是仍然可以討論一下的「medium」題目
決定發(fā)出來分享一下
這道題有比較容易想到的「O(n) 時(shí)間復(fù)雜度」的解法
但是難免有的面試官會(huì)"精益求精"
進(jìn)階的詢問是否有「O(n log(n)) 時(shí)間復(fù)雜度」的解法
這就需要大家動(dòng)動(dòng)小腦瓜啦~(其實(shí)也不難想到)
閑話少說~
先來看題~
題目
給定一個(gè)含有 n 個(gè)正整數(shù)的數(shù)組和一個(gè)正整數(shù) target 。
找出該數(shù)組中滿足 其和 ≥ target 的 長(zhǎng)度最小的 連續(xù)子數(shù)組
[nums_l, nums_l+1, ..., nums_r-1, nums_r] ,
并返回其長(zhǎng)度。
如果不存在符合條件的子數(shù)組,返回 0 。
示例 1:
輸入:target = 7, nums = [2,3,1,2,4,3]
輸出:2
解釋:子數(shù)組 [4,3] 是該條件下的長(zhǎng)度最小的子數(shù)組。
示例 2:
輸入:target = 4, nums = [1,4,4]
輸出:1
示例 3:
輸入:target = 11, nums = [1,1,1,1,1,1,1,1]
輸出:0
提示:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 105
先停在這里
思考一會(huì)兒~
你會(huì)用什么方法呢
一、滑動(dòng)窗口 / 雙指針
思路:
· 定義兩個(gè)指針 start 和 end 分別表示子數(shù)組(滑動(dòng)窗口窗口)的開始位置和結(jié)束位置
· 維護(hù)變量 sum 存儲(chǔ)子數(shù)組中的元素和
· 初始狀態(tài)下,start 和 end 都指向下標(biāo) 0,sum 的值為 0
· 每一輪迭代,將 nums[end] 加到 sum,如果 sum≥s,則更新子數(shù)組的最小長(zhǎng)度,然后將 nums[start] 從 sum 中減去并將 start 右移,直到 sum<s,在此過程中同樣更新子數(shù)組的最小長(zhǎng)度
· 在每一輪迭代的最后,將 end 右移。
復(fù)雜度分析:
· 時(shí)間復(fù)雜度:O(n),其中 n 是數(shù)組的長(zhǎng)度。指針 start 和 end 最多各移動(dòng) n 次。
· 空間復(fù)雜度:O(1)。c
二、前綴和 + 二分查找
思路:
· 因?yàn)檫@道題保證了數(shù)組中每個(gè)元素都為正,所以前綴和一定是遞增的,這一點(diǎn)保證了二分的正確性。如果題目沒有說明數(shù)組中每個(gè)元素都為正,這里就不能使用二分來查找這個(gè)位置了。
· 在確定每個(gè)子數(shù)組的開始下標(biāo)后,找到長(zhǎng)度最小的子數(shù)組需要 O(n) 的時(shí)間。
· 如果使用二分查找,則可以將時(shí)間優(yōu)化到 O(logn)。
復(fù)雜度分析:
· 時(shí)間復(fù)雜度:O(nlogn),其中 n是數(shù)組的長(zhǎng)度。需要遍歷每個(gè)下標(biāo)作為子數(shù)組的開始下標(biāo),遍歷的時(shí)間復(fù)雜度是 O(n),對(duì)于每個(gè)開始下標(biāo),需要通過二分查找得到長(zhǎng)度最小的子數(shù)組,二分查找得時(shí)間復(fù)雜度是 O(logn),因此總時(shí)間復(fù)雜度是 O(nlon)。
· 空間復(fù)雜度:O(n),其中 n 是數(shù)組的長(zhǎng)度。額外創(chuàng)建數(shù)組 sums 存儲(chǔ)前綴和。
原文標(biāo)題 : 209 | 長(zhǎng)度最小的子數(shù)組

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-6.16立即報(bào)名>> 【在線會(huì)議】Solution Talks |Computex 2025關(guān)鍵趨勢(shì)深讀
-
6月20日立即下載>> 【白皮書】精準(zhǔn)測(cè)量 安全高效——福祿克光伏行業(yè)解決方案
-
7月3日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身機(jī)器人動(dòng)力電池技術(shù)應(yīng)用大會(huì)
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語權(quán)
- 3 深度報(bào)告|中國(guó)AI產(chǎn)業(yè)正在崛起成全球力量,市場(chǎng)潛力和關(guān)鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級(jí)獨(dú)角獸:獲上市公司戰(zhàn)投,干人形機(jī)器人
- 5 國(guó)家數(shù)據(jù)局局長(zhǎng)劉烈宏調(diào)研格創(chuàng)東智
- 6 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 7 百億AI芯片訂單,瘋狂傾銷中東?
- 8 Robotaxi新消息密集釋放,量產(chǎn)元年誰在領(lǐng)跑?
- 9 格斗大賽出圈!人形機(jī)器人致命短板曝光:頭腦過于簡(jiǎn)單
- 10 為何全球AI巨頭都在搶?MCP協(xié)議背后的暴富玄機(jī)大公開!