NeetCode 150 · padrão basic DP (climbing stairs → house robber)

1-D Dynamic Programming

12 problemas · 5 entre os que mais caem · atualizado em 18 de julho de 2026
Para quem vai encarar entrevista de algoritmos

O padrão em 30 segundos

Programação dinâmica em uma dimensão: o resultado de hoje depende de poucos resultados anteriores. Fibonacci anabolizado: climbing stairs, house robber, coin change, longest increasing subsequence. A habilidade avaliada é DEFINIR o estado em voz alta.

Como reconhecer na hora

  • "Quantas maneiras de..." ou "máximo/mínimo até a posição i"
  • Decisão em cada passo que depende do que você decidiu antes
  • Recursão com subproblemas repetidos → memoização → tabela
onde todo mundo erra · anotado no caderno

Pular direto pro código sem conseguir dizer "dp[i] significa X". Se você não fala a definição do estado em uma frase, o entrevistador já anotou o não. Comece pela recorrência bruta, memoize, depois itere. Mostre o caminho.

Complexidade típica: Tipicamente O(n) tempo; espaço O(n) que muitas vezes comprime pra O(1). Dizer isso rende ponto.

Os 12 problemas da categoria

ProblemaDificuldadeNível no app
Climbing Stairs cai muitoeasynível 1 · core
Min Cost Climbing Stairseasynível 1
House Robber cai muitomediumnível 2 · core
House Robber IImediumnível 2 · core
Longest Palindromic Substring cai muitomediumnível 2 · core
Palindromic Substringsmediumnível 2 · core
Decode Waysmediumnível 2 · core
Coin Change cai muitomediumnível 2 · core
Maximum Product Subarraymediumnível 2 · core
Word Break cai muitomediumnível 2 · core
Longest Increasing Subsequencemediumnível 2 · core
Partition Equal Subset Summediumnível 3

No app, esses 12 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