Sliding Window là một dạng two pointers nhưng có invariant về một đoạn liên tiếp [left, right].
- Ta mở rộng
rightđể đưa thêm phần tử vào window, rồi thu hẹpleftkhi window vi phạm điều kiện hoặc khi đã đủ điều kiện để tối ưu kết quả. - Pattern này dùng tốt cho subarray/substring liên tiếp, ví dụ longest substring without repeating characters, minimum size subarray sum, max sum of length k.
- Lưu ý: sliding window tổng tăng/giảm đơn giản thường chỉ đúng khi số trong mảng không âm; nếu có số âm, tổng không còn monotonic và có thể cần prefix sum + hashmap.