Welcome to my personal algorithmic training ground! This repository is a collection of my solutions to various coding challenges, reflecting my continuous journey to improve in Data Structures and Algorithms.
This repository is part of my larger Developer Portfolio.
The goal of this repository is simple: to solve and thoroughly analyze coding problems regularly. I believe that consistent practice is the key to mastering algorithms. Here, you'll find not just the source code, but also explanations, complexity analyses (Big O), and thoughts on alternative approaches.
- LeetCode: Focusing on core data structures (Trees, Hash Maps, Arrays) and common algorithmic patterns (Two Pointers, Binary Search, Sliding Window).
- CodingBat: Great for quick warm-ups and mastering the syntax nuances of Java and Python.
The project is carefully organized to make navigation easy and intuitive:
📦 codingbat-practice
┣ 📂 LeetCode
┃ ┣ 📂 0001-0100 # Grouped by problem number (e.g., 1 to 100)
┃ ┃ ┗ 📂 0001-Two-Sum # Individual problem directory
┃ ┃ ┃ ┣ 📜 README.md # Task description, logic, and Big O analysis
┃ ┃ ┃ ┗ 📜 solution.py # The code implementation
┃ ┣ 📂 0100-0200
┃ ...
┣ 📂 java # CodingBat solutions in Java
┃ ┣ 📂 warmup-1 # Grouped by CodingBat categories
┃ ┃ ┗ 📜 SleepIn.java # Code implementation
┃ ...
┗ 📂 python # CodingBat solutions in Python
┣ 📂 warmup-1
┃ ┗ 📜 sleep_in.py
...
Currently, the repository contains solutions for:
- LeetCode: 18 carefully analyzed problems (primarily Python).
- CodingBat: 19 warmup problems, solved in both Java and Python.
Topics Covered: Arrays, Hash Tables, Two Pointers, Binary Search, Trees (DFS/BFS).
- Understand the task: Break down the requirements and edge cases.
- Draft a solution: Often starting with a brute-force approach to get a working baseline.
- Optimize: Look for patterns (e.g., using a Hash Map instead of nested loops) to improve Time and Space complexity.
- Document: Write down the final approach and its Big O notation in the problem's
README.md.
Feel free to explore the code! If you are reviewing my portfolio and have suggestions or see a place for optimization, I am always open to feedback.