← Voltar para a seção

Prova final — Programação Dinâmica

Três problemas inéditos (não vistos nas aulas) para testar se você sai desta seção resolvendo qualquer problema do tema: um fácil, um médio e um difícil. Alguns casos de teste são ocultos — como no LeetCode de verdade. Resolva em Python ou JavaScript.

Fácil

Min Cost Climbing Stairs

Cada degrau i tem um custo cost[i]. Você pode subir 1 ou 2 degraus por vez, e começar do degrau 0 ou do 1. Retorne o custo mínimo para chegar ao topo (além do último degrau).

Exemplo: [10,15,20] → 15 (começa no degrau 1, paga 15, e sobe 2 ao topo).

Ver no LeetCode ↗
Carregando editor…
Médio

Partition Equal Subset Sum

Dado um array nums de inteiros positivos, retorne true se ele pode ser dividido em dois subconjuntos com a mesma soma.

Exemplo: [1,5,11,5] → true ([1,5,5] e [11], ambos somam 11).

Ver no LeetCode ↗
Carregando editor…
Difícil

Edit Distance

Dadas duas palavras word1 e word2, retorne o número mínimo de operações (inserir, remover ou substituir um caractere) para transformar uma na outra.

Exemplo: "horse" → "ros" → 3 (remove 'h', substitui 'r'→'r'… → na prática: rose, ros... 3 operações).

Ver no LeetCode ↗
Carregando editor…