Follow This Trick to Learn Data Structures & Algorithms
Hello fellow programmers! Learning data structures and algorithms (DSA) can be intimidating at first, but I’m here to help you ease into it. Mastering DSA is crucial for cracking interviews at top tech companies, and it can be especially challenging for those from non-traditional backgrounds like myself. Building the necessary muscle memory to think, operate, and execute like a programmer requires dedication and patience.
This blog is a small attempt to make these concepts more approachable and less overwhelming. I’ll be sharing coding patterns that cover all the essential aspects of DSA. Before diving into each pattern, here’s a roadmap to guide you through the learning process. Take a quick look, but don’t stress about it!
I encourage you to explore each coding pattern (which I’ll cover in separate blog posts) and try to visualize the pattern while solving at least two coding challenges on your own without any assistance. Take your time — you don’t need to perform perfectly at first. With repeated practice, your brain will develop the muscle memory needed to optimize solutions and solve problems more efficiently. Right now, don’t worry about speed; focus on understanding and practice.
Brute force
Leetcode problem statements you can solve —
- String Matching — https://leetcode.com/tag/string-matching/
- Combinators — https://leetcode.com/tag/combinatorics/
Two pointer technique
Leetcode problem statements you can solve —
- Two-pointers — https://leetcode.com/tag/two-pointers/
- Sliding window — https://leetcode.com/tag/sliding-window/
Divide and Conquer
Leetcode problem statements you can solve —
- Sorting — https://leetcode.com/tag/sorting/
- Divide and Conquer — https://leetcode.com/tag/divide-and-conquer/
- Binary Search — https://leetcode.com/tag/binary-search/
- Dynamic Programming — https://leetcode.com/tag/dynamic-programming/
- Multiplication — https://leetcode.com/problemset/?search=multiplication&page=1
Disclaimer: This blog is still a work in progress, and I will be posting new coding patterns every day (coming up next — Breadth First Search). So stay tuned!