O padrão em 30 segundos
Uma janela [esquerda, direita] que desliza pelo array/string mantendo um estado incremental (soma, contagem, set de chars). Cresce pela direita; quando a condição quebra, encolhe pela esquerda. Serve para "melhor subarray/substring contígua que satisfaz X".
Como reconhecer na hora
- "Substring/subarray mais longo/curto sem repetição / com soma ≤ K"
- A resposta é um trecho CONTÍGUO: janela só funciona em contíguo
- Você recalcularia a mesma soma/contagem várias vezes na força bruta
onde todo mundo erra · anotado no caderno
Recalcular o estado da janela do zero a cada passo (vira O(n²) disfarçado). O truque todo é atualizar incrementalmente: entra elemento pela direita, soma; sai pela esquerda, subtrai.
Complexidade típica: Tempo O(n): cada elemento entra e sai da janela no máximo uma vez.
Os 6 problemas da categoria
| Problema | Dificuldade | Nível no app |
|---|---|---|
| Best Time to Buy and Sell Stock cai muito | easy | nível 1 · core |
| Longest Substring Without Repeating Characters cai muito | medium | nível 2 · core |
| Longest Repeating Character Replacement | medium | nível 2 · core |
| Permutation in String | medium | nível 3 |
| Minimum Window Substring cai muito | hard | nível 4 · core |
| Sliding Window Maximum | hard | nível 4 |
No app, esses 6 problemas entram numa trilha de 4 níveis com marcação do que mais cai em entrevista, e você registra tentativa, revisão e domínio de cada um.
Abrir a trilha NeetCode no app