**給定乙個含有 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...