Este repositório é dedicado ao meu processo de aprendizado da linguagem Go (Golang), focado em resolver desafios de lógica e implementar estruturas de dados clássicas.
O objetivo aqui é consolidar conceitos de performance, gerenciamento de memória e algoritmos eficientes.
Aprenda_GO/: Exercícios e notas do curso de fundamentos da linguagem.basics/: Implementações de lógica básica e sintaxe.beecrowd/: Desafios resolvidos na plataforma Beecrowd (antigo URI).leetcode/: Exercícios de algoritmos do LeetCode (foco em performance 0ms).hackerrank/: Problemas de lógica e estruturas de dados do HackerRank.
Até o momento, o foco principal tem sido em Pilha (Stack), explorando diferentes formas de implementação:
- Pilha baseada em Nós (Ponteiros/Dynamic Allocation)
- Pilha baseada em Slices (Foco em Performance/Cache Locality)
Um dos grandes diferenciais desse estudo é a otimização de código. Abaixo, um exemplo de evolução no LeetCode:
| Problema | Abordagem | Runtime | Performance |
|---|---|---|---|
| #1047 Remove Duplicates | Stack com Nós | 19ms | Top 15% |
| #844 Backspace Compare | Stack com Slice | 0ms | Top 100% 🚀 |
Cada pasta de exercício contém um arquivo main.go. Para rodar qualquer um deles:
cd leetcode/20_ValidParentheses
go run main.go