常用在需要使用滑動視窗的演算法題上面
滑動視窗主要用來尋找子串
演算法舉例:
209. 長度最小的子陣列
// 給定乙個含有n個正整數的陣列和乙個正整數s
// 找出該陣列中滿足其和 ≥ s 的長度最小的連續子陣列
// 如果不存在符合條件的連續子陣列,返回 0。
// 示例: 輸入: s = 7, nums = [2,3,1,2,4,3]
// 輸出: 2
// 解釋: 子陣列 [4,3] 是該條件下的長度最小的連續子陣列
// 雙索引技術:滑動視窗
// 在陣列最左側設定兩個索引,判定其中的乙個字串,
// 如果當前子串的和 > s 那麼將左邊的索引 -1
// 如果當前子串的和 < s 那麼將右邊的索引 +1
public class minsubarraylen ;
system.out.println(minsubarraylen(s, nums));
}private static int minsubarraylen(int s, int nums) else
if (sum >= s)
}if (arraylen == nums.length + 1)
return arraylen;
}}
滑動視窗求解長度最小子陣列
給定乙個含有 n 個正整數的陣列和乙個正整數 target 找出該陣列中滿足其和 target 的長度最小的 連續子陣列 numsl,numsl 1,numsr 1,numsr 並返回其長度。如果不存在符合條件的子陣列,返回 0 思路 採用滑動視窗的思想,起始位置視窗的大小為1,視窗的起點和終點都在...
滑動視窗 長度最小的子陣列
滑動視窗 長度最小的子陣列 暴力法 區間由left,和right確定,因此需要兩層for迴圈遍歷left和right,o n 2 滑動視窗法 滑動視窗也是使用雙指標確定視窗的left和right,left和right如何移動?right要從0 到length 1移動,步長1,也就是用for迴圈,le...
探索陣列和字串 長度最小的子陣列(滑動視窗)
給定乙個含有 n 個正整數的陣列和乙個正整數 s 找出該陣列中滿足其和 s 的長度最小的連續子陣列。如果不存在符合條件的連續子陣列,返回 0。示例 輸入 s 7,nums 2,3,1,2,4,3 輸出 2 解釋 子陣列 4,3 是該條件下的長度最小的連續子陣列。高階 如果你已經完成了o n 時間複雜...