O padrão em 30 segundos
Intervalos [início, fim]: juntar sobrepostos, detectar conflito de agenda, contar salas de reunião. O movimento é quase sempre o mesmo: ordenar por início (ou fim) e varrer comparando com o último intervalo aceito.
Como reconhecer na hora
- "Reuniões", "agenda", "sobreposição", pares [start, end]
- "Quantas salas/recursos simultâneos" → varrer eventos de entrada/saída
- "Remova o mínimo para não sobrepor" → ordenar por FIM (greedy)
onde todo mundo erra · anotado no caderno
Não definir se [1,3] e [3,5] se sobrepõem (fronteira!) antes de codar: metade dos bugs é isso. E comparar todos com todos (O(n²)) quando ordenar primeiro deixa a varredura linear.
Complexidade típica: O(n log n) pelo sort, varredura O(n) depois.
Os 6 problemas da categoria
| Problema | Dificuldade | Nível no app |
|---|---|---|
| Insert Interval cai muito | medium | nível 2 · core |
| Merge Intervals cai muito | medium | nível 2 · core |
| Non-overlapping Intervals | medium | nível 2 · core |
| Meeting Rooms | easy | nível 1 · core |
| Meeting Rooms II cai muito | medium | nível 2 · core |
| Minimum Interval to Include Each Query | 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