Amazon OA
Dois problemas clássicos focados em eficiência, escala e edge cases. Use o treino de 5 passos para responder com clareza: Clarify → Rephrase → Algorithm → Code → Review.
Prova final: Permutation Sorter
Exercício: Permutation Sorter (OA) — shifts + reverse
Pré‑requisitos: 0/5
Faltam 5 grupos
Permutation Sorter
Ordenar uma permutação usando apenas Reverse (inverter tudo) e Shift (rotacionar), minimizando operações.
Restrições
- n pode ser grande (ex.: 1e5)
- não simular rotações repetidas
Ideias-chave
- Identificar posição do 1
- Descobrir orientação: vizinho do 1 é 2 ou n
- Calcular número mínimo de operações matematicamente
Preparação guiada
Treino: Clarify
Liste 4 perguntas de Clarify que você faria antes de codar este tipo de problema.
Exercício: Big O e TLE
Explique por que simular Shift com operações de array repetidas tende a dar TLE.
Exercício: Edge cases
Quais edge cases você testaria (ex.: já ordenado, reverse completo, n=1)?
Prova final: Minimum Errors
Exercício: Minimum Errors (subsequências + BigInt)
Pré‑requisitos: 0/4
Faltam 4 grupos
Minimum Errors
Substituir '!' por 0/1 minimizando custo de subsequências '01' (custo x) e '10' (custo y).
Restrições
- n até 1e5
- resultado pode ser grande (usar BigInt e módulo 1e9+7)
Ideias-chave
- Contagem acumulada de zeros/uns para calcular pares em O(n)
- Evitar operações caras em string grande dentro de loop
- Cuidado para não inverter '01' com '10'
Preparação guiada
Treino: Clarify
Liste 4 perguntas de Clarify que você faria antes de codar este tipo de problema.
Exercício: Contagem de subsequências
Dada a string '0101' e x=2, y=3, calcule custo total manualmente (pares '01' e '10').
Exercício: BigInt no JS
Mostre como você declararia MOD e faria soma/multiplicação usando BigInt.
Prova final: Koko Eating Bananas
Exercício: Koko Eating Bananas (Binary Search na resposta)
Pré‑requisitos: 0/4
Faltam 4 grupos
Koko Eating Bananas
Encontrar a menor velocidade k para comer todas as pilhas em h horas usando busca binária na resposta.
Restrições
- 1 ≤ piles.length ≤ 1e5
- valores até 1e9
- h pode ser grande
Ideias-chave
- Predicado monotônico: com velocidade k, soma das horas ≤ h?
- Buscar o menor k que satisfaz
- Atenção a overflow e arredondamento (ceil)
Preparação guiada
Treino: Clarify
Liste 4 perguntas de Clarify que você faria antes de codar este tipo de problema.
Exercício: Predicado
Escreva a função ok(k) que testa se Koko finaliza em h horas para as pilhas informadas.
Prova final: Capacity to Ship Packages Within D Days
Exercício: Capacity to Ship Packages Within D Days
Pré‑requisitos: 0/4
Faltam 4 grupos
Pré-requisitos necessários
Capacity to Ship Packages Within D Days
Achar a menor capacidade para enviar todos os pacotes em D dias (busca binária na resposta com simulação de dias).
Restrições
- 1 ≤ weights.length ≤ 1e5
- D ≥ 1
- sum(weights) pode ser grande
Ideias-chave
- Limites: lo = max(weights), hi = sum(weights)
- Predicado: com capacidade C, quantos dias precisamos?
- Fechar no menor C que atende
Preparação guiada
Treino: Clarify
Liste 4 perguntas de Clarify que você faria antes de codar este tipo de problema.
Exercício: Simular dias
Dada uma capacidade C, descreva como simular a quantidade de dias necessária.