An open API service indexing awesome lists of open source software.

https://github.com/emicy963/algorithms-and-data-structure

Este repositório documenta minha jornada de 55 dias no bootcamp de Estruturas de Dados e Algoritmos. Como desenvolvedor Backend Python/Django em transição para Engenharia de IA, este desafio é fundamental para fortalecer as bases que sustentam sistemas inteligentes e escaláveis.
https://github.com/emicy963/algorithms-and-data-structure

100daysofcode algorithms-and-data-structures machine-learning python

Last synced: 5 months ago
JSON representation

Este repositório documenta minha jornada de 55 dias no bootcamp de Estruturas de Dados e Algoritmos. Como desenvolvedor Backend Python/Django em transição para Engenharia de IA, este desafio é fundamental para fortalecer as bases que sustentam sistemas inteligentes e escaláveis.

Awesome Lists containing this project

README

          


Challenge Badge

📊 Algorithm & Data Structures


Uma jornada de 55 dias dominando Estruturas de Dados e Algoritmos



GitHub

Python
Status
Progress

---

## 🎯 Sobre o Projeto

Este repositório documenta minha jornada de **55 dias** no bootcamp de Estruturas de Dados e Algoritmos. Como desenvolvedor **Backend Python/Django** em transição para **Engenharia de IA**, este desafio é fundamental para fortalecer as bases que sustentam sistemas inteligentes e escaláveis.

> 💡 _"Algoritmos são a linguagem secreta que separa bons desenvolvedores de desenvolvedores excepcionais."_

---

## 📚 Estrutura do Repositório

```
📁 Algorithm and Data Structured/
├── 📁 docs/ # Documentação adicional
├── 📁 src/ # Código fonte por dia
│ ├── 📁 Day 01/ # Arrays & Big O
│ ├── 📁 Day 02/ # Recursion
│ └── ...
├── 📄 .gitignore
├── 📄 LICENSE
└── 📄 README.md
```

---

## 🗓️ Roadmap Completo - 55 Dias

### 📦 Fase 1: Fundamentos (Day 1)

| Dia | Tópico | Problemas | Status |
| --- | --------------------------------- | ------------------------------------- | ------ |
| 01 | [Arrays & Big O](./src/Day%2001/) | Sorted Squared Array, Monotonic Array | ✅ |

---

### 🔄 Fase 2: Recursion (Days 2-3)

| Dia | Tópico | Problemas | Status |
| --- | --------- | ---------------------------------------- | ------ |
| 02 | [Recursion](./src/Day%2002/) | K-th Symbol in Grammar, Josephus Problem | ✅ |
| 03 | [Recursion](./src/Day%2003/) | Tower of Hanoi, Power Sum | ✅ |

---

### 🔙 Fase 3: Backtracking (Days 4-8)

| Dia | Tópico | Problemas | Status |
| --- | ------------ | -------------------------------------- | ------ |
| 04 | [Backtracking](./src/Day%2004/) | Permutations, Permutations 2 | ✅ |
| 05 | Backtracking | Subsets, Subsets 2 | ⏳ |
| 06 | Backtracking | Combinations, Combinations Sum 1 | ⏳ |
| 07 | Backtracking | Combinations Sum 2, Combinations Sum 3 | ⏳ |
| 08 | Backtracking | Sudoku Solver, N Queens | ⏳ |

---

### 📈 Fase 4: Dynamic Programming (Days 9-18)

| Dia | Tópico | Problemas | Status |
| --- | ----------------- | ------------------------------------------- | ------ |
| 09 | DP - Basics | Fibonacci, Climbing Stairs | ⏳ |
| 10 | DP - Stairs | Min Cost Climbing Stairs, Tribonacci | ⏳ |
| 11 | DP - Knapsack | 01 Knapsack, Unbounded Knapsack | ⏳ |
| 12 | DP - Subsets | Target Sum, Partition Equal Subset Sum | ⏳ |
| 13 | DP - Strings | LCS, Edit Distance | ⏳ |
| 14 | DP - Sequences | LIS, Max Length of Pair Chain, Russian Doll | ⏳ |
| 15 | DP - Palindromes | Palindromic Substrings, Longest Palindromic | ⏳ |
| 16 | DP - Partitioning | Palindrome Partitioning 1 & 2 | ⏳ |
| 17 | DP - Advanced | Word Break, Matrix Chain Multiplication | ⏳ |
| 18 | DP - Kadane's | Max Subarray, Maximum Product Subarray | ⏳ |

---

### 🎯 Fase 5: Greedy Algorithms (Days 19-23)

| Dia | Tópico | Problemas | Status |
| --- | ------ | ---------------------------------------------- | ------ |
| 19 | Greedy | Fractional Knapsack, Non-overlapping Intervals | ⏳ |
| 20 | Greedy | Jump Game 1, Min Arrows to Burst Balloons | ⏳ |
| 21 | Greedy | Two City Scheduling, Boats to Save People | ⏳ |
| 22 | Greedy | Task Scheduler, Largest Number | ⏳ |
| 23 | Greedy | Gas Stations, Jump Game 2 | ⏳ |

---

### 🔤 Fase 6: Arrays, Hash Tables & Strings (Days 24-27)

| Dia | Tópico | Problemas | Status |
| --- | ----------- | ---------------------------------------- | ------ |
| 24 | Arrays | Rotate Array, Container with Most Water | ⏳ |
| 25 | Hash Tables | Two Sum, Isomorphic Strings | ⏳ |
| 26 | Strings | Non-Repeating Character, Palindrome | ⏳ |
| 27 | Strings | Longest Unique Substring, Group Anagrams | ⏳ |

---

### 🔍 Fase 7: Searching & Sorting (Days 28-32)

| Dia | Tópico | Problemas | Status |
| --- | --------- | ------------------------------------------------ | ------ |
| 28 | Searching | Binary Search, Search in Rotated Sorted Array | ⏳ |
| 29 | Searching | Find First and Last Position, Search in 2D Array | ⏳ |
| 30 | Sorting | Bubble Sort, Insertion Sort | ⏳ |
| 31 | Sorting | Selection Sort, Merge Sort | ⏳ |
| 32 | Sorting | Quick Sort, Radix Sort | ⏳ |

---

### 🔗 Fase 8: Linked Lists (Days 33-36)

| Dia | Tópico | Problemas | Status |
| --- | ------------------- | --------------------------------- | ------ |
| 33 | Singly Linked Lists | Construct SLL, Delete Duplicates | ⏳ |
| 34 | Singly Linked Lists | Reverse SLL, Cycle Detection | ⏳ |
| 35 | Singly Linked Lists | Find Duplicate, Add 2 Numbers | ⏳ |
| 36 | Doubly Linked Lists | DLL Remove/Insert, DLL Remove All | ⏳ |

---

### 📚 Fase 9: Stacks & Queues (Days 37-38)

| Dia | Tópico | Problemas | Status |
| --- | ------ | ------------------------------------------- | ------ |
| 37 | Stacks | Construct Stack, Reverse Polish Notation | ⏳ |
| 38 | Queues | Construct Queue, Implement Queue with Stack | ⏳ |

---

### 🌳 Fase 10: Binary Trees (Days 39-50)

| Dia | Tópico | Problemas | Status |
| --- | --------------- | ---------------------------------------------- | ------ |
| 39 | Binary Trees | Construct BST, Traversal Techniques | ⏳ |
| 40 | Traversal | Pre-order & In-order Iterative | ⏳ |
| 41 | Traversal | Post-order Iterative, Path Sum 2 | ⏳ |
| 42 | Construction | Build Tree from Pre/In-order & In/Post-order | ⏳ |
| 43 | Level Order | Level Order Traversal, Left/Right View | ⏳ |
| 44 | Level Order | Level Order 2, ZigZag Traversal | ⏳ |
| 45 | Advanced | Vertical Order Traversal, Sum Root to Leaf | ⏳ |
| 46 | Tree Operations | Invert Tree, Diameter of Tree | ⏳ |
| 47 | BST | Convert Sorted Array to BST, Validate BST | ⏳ |
| 48 | BST | Lowest Common Ancestor BST, Unique BST 2 | ⏳ |
| 49 | Binary Tree | Lowest Common Ancestor BT, Unique BST 1 | ⏳ |
| 50 | Serialization | Serialize/Deserialize BT, N-ary Tree Traversal | ⏳ |

---

### 🏔️ Fase 11: Heaps (Day 51)

| Dia | Tópico | Problemas | Status |
| --- | ------ | ---------------------------- | ------ |
| 51 | Heaps | Max Heap, Min Priority Queue | ⏳ |

---

### 🕸️ Fase 12: Graphs (Days 52-55)

| Dia | Tópico | Problemas | Status |
| --- | ------ | ----------------------------------------------- | ------ |
| 52 | Graphs | BFS, DFS | ⏳ |
| 53 | Graphs | Connected Components, Topological Sort | ⏳ |
| 54 | Graphs | Number of Provinces, Find Path in Graph | ⏳ |
| 55 | Graphs | Number of Islands, Same Consecutive Differences | ⏳ |

---

## 📊 Legenda de Complexidade

| Notação | Nome | Performance |
| ---------- | ------------ | ------------ |
| O(1) | Constante | 🟢 Excelente |
| O(log n) | Logarítmica | 🟢 Ótima |
| O(n) | Linear | 🟡 Boa |
| O(n log n) | Linearítmica | 🟡 Aceitável |
| O(n²) | Quadrática | 🟠 Ruim |
| O(2ⁿ) | Exponencial | 🔴 Péssima |

---

## 🚀 Como Usar

```bash
# Clone o repositório
git clone https://github.com/Emicy963/Algorithm-and-Data-Structured.git

# Entre no diretório
cd Algorithm-and-Data-Structured

# Execute os exemplos de um dia específico
python src/Day\ 01/03_sorted_squared_array.py
```

---

## 🛠️ Tecnologias

- **Python 3.10+** - Linguagem principal
- **Type Hints** - Para código mais legível
- **Docstrings** - Documentação inline

---

## 📈 Acompanhe a Jornada

Estou documentando este desafio diariamente no **LinkedIn**! Acompanhe os insights, dificuldades e aprendizados:



LinkedIn

---

## 🤝 Contribuições

Encontrou um erro ou tem uma solução mais elegante? Contribuições são bem-vindas!

1. Fork o projeto
2. Crie uma branch (`git checkout -b feature/nova-solucao`)
3. Commit suas mudanças (`git commit -m 'Add: solução alternativa'`)
4. Push para a branch (`git push origin feature/nova-solucao`)
5. Abra um Pull Request

---

## 📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo [LICENSE](./LICENSE) para mais detalhes.

---


Feito com 💜 por Anderson Cafurica


⭐ Se este repositório te ajudou, considere dar uma estrela!