A personal repository documenting my journey learning fundamental data structures, algorithms, and problem-solving patterns through hands-on practice.
This repository contains my implementations and solutions for:
- Data Structures: Core data structure implementations from scratch
- Algorithms: Problem-solving solutions and algorithm patterns
- Coding Challenges: Solutions from platforms like LeetCode and HackerRank
- Multiple Languages: Practice in TypeScript, JavaScript, Python, Rust, Elixir, and Go
- Master fundamental data structures and their implementations
- Understand common algorithm patterns and when to apply them
- Improve problem-solving skills through consistent practice
- Explore different programming languages and their paradigms
- Build a solid foundation for technical interviews
dsa/
├── data-structures/ # Core data structure implementations
│ ├── stack.ts # LIFO (Last In, First Out)
│ ├── queue.ts # FIFO (First In, First Out)
│ ├── singly-linked-list.ts
│ ├── doubly-linked-list.ts
│ ├── dynamic-array.ts
│ ├── priority-queue.ts
│ └── node.ts # Shared node implementation
│
├── algorithms/
│ ├── leetcode/ # LeetCode problem solutions
│ │ ├── typescript/ # TypeScript solutions
│ │ │ ├── 26-remove-duplicates-from-sorted-array.ts
│ │ │ ├── 27-remove-element.ts
│ │ │ ├── 80-remove-duplicates-from-sorted-array-II.ts
│ │ │ ├── 88-merge-sorted-array.ts
│ │ │ └── 189-rotate-array.ts
│ │ └── rust/ # Rust solutions
│ │
│ ├── coding-challenges/ # Platform-specific challenges
│ │ └── hackerrank/ # HackerRank solutions
│ │
│ ├── patterns/ # Algorithm patterns & techniques
│ │ └── sliding-window/ # Sliding window pattern examples
│ │ ├── max-subarray.ts
│ │ ├── longest-subarray-with-less-sum.ts
│ │ └── notes.md
│ │
│ └── misc/ # Standalone algorithm implementations
│ ├── matching-brackets.ts
│ ├── pascals-triangle.ex
│ ├── top-k-frequent.ts
│ └── two-strings.js
│
└── notes.md # Quick reference notes
Note: This repository is a work in progress and reflects my ongoing learning journey. Solutions may not always be optimal, but they represent my understanding at the time of writing.