Trung BìnhDSA iconDSA

Sliding Window khác gì Two Pointers và khi nào dùng được?

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ẹp left khi 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.

Xem toàn bộ DSA cùng filter theo level & chủ đề con.

Mở danh sách DSA