Por que TypeScript é a linguagem ideal para o LeetCode?
Se você ainda resolve problemas no LeetCode em JavaScript — está na hora de migrar para TypeScript. Por quê? Porque a tipagem forte elimina toda uma classe de erros antes mesmo da execução do código. Você não conseguirá passar acidentalmente uma string onde se espera um número, e o compilador indicará quais métodos estão disponíveis em um objeto. É como dirigir um carro com piloto automático — mais rápido, seguro e agradável.
O LeetCode não é apenas uma plataforma para decorar algoritmos. É um campo de treinamento onde você aprimora habilidades que são realmente necessárias em produção. E o TypeScript hoje é o padrão de facto para desenvolvimento empresarial. Empresas como Google, Microsoft e Airbnb buscam desenvolvedores que sabem escrever código tipado. Então, resolvendo problemas no LeetCode em TypeScript, você mata dois coelhos com uma cajadada só: se prepara para a entrevista e melhora habilidades reais.
Neste artigo, vamos analisar por onde começar, quais tipos e estruturas de dados estudar, e resolveremos 3 problemas de diferentes níveis — do fácil ao difícil. Vamos lá!
O que você precisa saber antes de começar
Antes de mergulhar nos problemas, certifique-se de ter uma base. TypeScript é uma extensão do JavaScript, então primeiro você precisa dominar JS: closures, promises, métodos de array, manipulação de objetos. Sem isso, TypeScript parecerá apenas açúcar sintático desnecessário.
Tipos principais que serão úteis no LeetCode
number,string,boolean— a base, indispensávelnumber[],string[]— arrays, presentes em 90% dos problemasRecord<string, number>— objeto como dicionário (hash map)Map<K, V>— alternativa ao objeto com preservação de ordemSet<T>— para valores únicosTuple— tuplas, úteis em problemas que retornam pares de valoresnull | undefined— tratamento de casos extremos
Estruturas de dados mais comuns
- Arrays — a base de tudo. Arrays bidimensionais, ordenação, busca binária
- Tabelas hash — para busca rápida (problema Two Sum é clássico)
- Pilha e fila — para problemas com parênteses, BFS, DFS
- Listas encadeadas — reverse, merge, detect cycle
- Árvores — binárias, árvores binárias de busca, percursos
- Grafos — geralmente em entrevistas de nível Sênior
Não tente aprender tudo de uma vez. Comece com arrays e tabelas hash — isso cobrirá 70% dos problemas de nível Fácil e Médio.
Como configurar o ambiente para TypeScript no LeetCode
O LeetCode suporta TypeScript nativamente. Ao selecionar o idioma, basta clicar em "TypeScript" no menu suspenso. No entanto, se você quiser escrever código localmente e testar, aqui está a configuração mínima:
npm init -ynpm install typescript @types/node --save-devnpx tsc --initCrie um arquivo solution.ts e execute a compilação com o comando npx tsc solution.ts && node solution.js. Isso ajudará você a se acostumar com a tipagem forte e a detectar erros rapidamente.
Análise de 3 problemas em TypeScript: do Fácil ao Difícil
Agora vamos à prática. Escolhi três problemas que demonstram bem as capacidades do TypeScript e são frequentes em entrevistas.
1. Two Sum (Fácil) — clássico do gênero
Problema: dado um array de números e um alvo. Encontre dois números cuja soma seja igual ao alvo e retorne seus índices.
function twoSum(nums: number[], target: number): number[] { const map = new Map<number, number>();
for (let i = 0; i < nums.length; i++) { const complement = target - nums[i]; if (map.has(complement)) { return [map.