Sliding window — приём для задач на подмассивы/подстроки: поддерживаешь "окно" из двух указателей (left, right) и двигаешь их по массиву. Расширяешь окно вправо, пока условие выполняется, сужаешь слева, когда нарушается. Классика: найти максимальную подстроку без повторов, минимальное окно с заданными символами. O(n) вместо O(n²). В Go реализуется через два индекса и map/set для отслеживания состояния окна. Один из самых частых паттернов на LeetCode-собеседованиях.