LeetCode—209. 长度最小的子数组
生活随笔
收集整理的這篇文章主要介紹了
LeetCode—209. 长度最小的子数组
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
209. 長(zhǎng)度最小的子數(shù)組
題目描述:給定一個(gè)含有 n 個(gè)正整數(shù)的數(shù)組和一個(gè)正整數(shù) target 。
找出該數(shù)組中滿足其和 ≥ target 的長(zhǎng)度最小的 連續(xù)子數(shù)組 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其長(zhǎng)度。如果不存在符合條件的子數(shù)組,返回 0 。
考察重點(diǎn):快慢指針——滑動(dòng)窗口
方法概括:通過滑動(dòng)窗口查找數(shù)組內(nèi)滿足條件的最短子數(shù)組
func MinSubArrayLen(target int, nums []int) int {res := 0minLen := math.MaxInt32slow := 0 //slow ,quick 雙指針滑動(dòng)窗口for quick := 0; quick < len(nums); quick++ {res += nums[quick] //quick每次向后一個(gè),加入新元素for res >= target { //因?yàn)閝uick++導(dǎo)致窗口總和超出target,則通過slow++減少窗口總和if minLen > quick-slow+1 { //如果當(dāng)前長(zhǎng)度小于minLen,則替換minLen = quick - slow + 1}res -= nums[slow]slow++}}if minLen == math.MaxInt32 { //如果無法達(dá)到target,返回0return 0}return minLen }總結(jié)
以上是生活随笔為你收集整理的LeetCode—209. 长度最小的子数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信,QQ抢红包软件原理解析
- 下一篇: 好东西,资料!!