Leetcode209 長度最小的子陣列

2021-10-22 00:04:32 字數 1081 閱讀 8107

**給定乙個含有 n 個正整數的陣列和乙個正整數 target 。找出該陣列中滿足其和 ≥ target 的長度最小的 連續子陣列

[numsl, numsl+1, …, numsr-1, numsr] ,並返回其長度。如果不存在符合條件的子陣列,返回 0 。

示例 1:

輸入:target = 7, nums = [2,3,1,2,4,3]

輸出:2

解釋:子陣列 [4,3] 是該條件下的長度最小的子陣列。**

思路分析:

時間複雜度為o(n)的解法就是採用所謂的滑動視窗(雙指標),通過不斷改變子陣列的起始位置和終止位置,逐漸得到》=target的最小的連續子陣列的長度。

給定兩個指標i,j分別指向起始位置(nums[0]),終止位置(j及之前元素之和大於等於target)

通過起始位置與終止位置移動控制視窗,當sum(sum為它們之間元素之和)>=target時去移動i,小於時去移動j,

視窗的結束位置就是相當於i或j遍歷到陣列尾。

1,滑動視窗:

//滑動視窗(雙指標)

public

static

intminsubarraylen2

(int target,

int[

] nums)}if

(result==

1000001

)else

}

2,普通方法:

//超出時間限制

public

static

intminsubarraylen1

(int target,

int[

] nums)

if(sum>=target)

j=temp;

sum=0;

}}return0;

}

leetcode 209 長度最小的陣列

題目描述 給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。參考 負雪明燭 class solution object def minsubarraylen self,s,nums type s int ty...

LeetCode 209 長度最小的子陣列

題目鏈結 題目描述 給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。解決方法 兩種方法 ...

Leetcode209 長度最小的子陣列

給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。public intminsubarr...