DS-Algo
DS-Algo copied to clipboard
A collection of everything i have done in DS
Sufferings and Problem Solving
1. Table of Content
-
- Table of Content
-
- Data Structures Implementation
- 2.1. Common DS Implementation
- 2.2. Common Algo Implementation
- 2.3. Leetcode Explore
-
- Algo Monster
- 3.1. Topics in Algo Monster
- 3.1.1. Practice from Algo Monster
-
- Grokking the Coding Interview
- 4.1. Patterns
-
- Grokking Dynamic Programming Patterns
- 5.1. Patterns
-
- System Design
-
- Daily Logs
Refrences:
-
Guided Study
Algo Monster
Grokking the Coding Interview -
Extreme Practice in Adhoc Manner (Monthly Challenge)
LeetCode Challenge -
LeetCode Lists
-
LeetCode Study Guide on Various DS
-
Object Oriented Programming
-
Dynamic Programming and Trees + Graph (More Practice)
-
Quick Glance for Practiced Questions
Study Approach
- Practice and Study consistently. No Streak breaks
- Create Flashcards daily.
- Spend 1-2 hour synthesizing whatever you learn.
- List down all the aha moments in one file.
- Practice Java / Create Projects in JAVA
- Reserve time for writing notes and practicing flashcards
NOT TODO LIST
- Block all the social media permanently.
- Don't get distracted by any other technology
- Don't start learning anything new
- No for CSS
- No for any new JS framework
- No for any tool
- No for Design
- Don't start learning anything new
2. Data Structures Implementation
2.1. Common DS Implementation
- [x] Stack
- [x] Queue
- [ ] Linked List
- [ ] Doubly Linked List
- [ ] Hashmap
- [ ] Tree
- [ ] Tree Implementation
- [ ] Inorder
- [ ] Recursive
- [ ] Iterative
- [ ] Preorder
- [ ] Recursive
- [ ] Iterative
- [ ] PostOrder
- [ ] Recursive
- [ ] Iterative
- [ ] AVL Tree
- [ ] Trie
- [ ] Hased Array Tree
- [ ] LRU Cache
- [ ] Graph
- [ ] BFS
- [ ] DFS
2.2. Common Algo Implementation
- [ ] Sorting
- [ ] Binary
- [ ] Selection
- [ ] Insertion
- [ ] Quick
- [ ] Merge
- [ ] Counting
- [ ] Radix
- [ ] Bucket
- [ ] Heap
- [ ] Search
- [ ] Binary Search
- [ ] Lower Bound
- [ ] Upper Bound
- [ ] Binary Search on Ranges
- [ ] String
- [ ] Rabin Karp
2.3. Leetcode Explore
Array
- [x] Duplicate Zeroes
- [ ] Merge Sorted Arrays
- [x] Valid Mountain Array
- [x] Check if N and Its double Exist
- [x] Remove Duplicate From Sorted Array
- [x] Array Deletions
- [x] In Place Operations
- [ ] Conclusion
3. Algo Monster
3.1. Topics in Algo Monster
- [ ] Binary Search
- [ ] Depth First Search
- [ ] Backtracking
- [ ] Breadth First Search
- [ ] Graph
- [ ] Two pointers
- [ ] Priority Queue
- [ ] Dynamic Programming
- [ ] Divide and Conquer
- [ ] Advanced Data Structure
- [ ] Other
3.1.1. Practice from Algo Monster
- [ ] Object Oriented Design
- [ ] Amazon Online Assessment
- [ ] Microsoft Online Assessment
- [ ] Google Online Assessment
- [ ] Twitter Online Assessment
4. Grokking the Coding Interview
4.1. Patterns
- [ ] Sliding Window
- [ ] Two Pointers
- [ ] Fast and Slow Pointers
- [ ] Merge Intervals
- [ ] Cyclic Sort
- [ ] In-place reversal of Linked List
- [ ] Tree: Breadth First Search
- [ ] Tree: Depth First Search
- [ ] Two Heaps
- [ ] Subsets
- [ ] Modified Binary Search
- [ ] Bitwise XOR
- [ ] Top K Element
- [ ] K-way merge
- [ ] 0-1 Knapsack
- [ ] Topological Sort
- [ ] Miscellaneous
5. Grokking Dynamic Programming Patterns
5.1. Patterns
- [ ] Knapsack
- [ ] Unbounded Knapsack
- [ ] Fibonacci Numbers
- [ ] Palindromic Subsequence
- [ ] Longest Common Substring
6. System Design
Reference :
List of Questions asked on System Design
7. Daily Logs
| Day Count | Source | Problem | Level | Time | Notes | Solution | Category | R - 1 | R - 2 | R - 3 | R - 4 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Implement Stack | Easy | 20 m | ||||||||
| Implement Queue | Easy | 30 m | |||||||||
| Duplicate Zeros | Easy | 20 m | |||||||||
| 2 | Valid Mountain Array | Easy | 30 m | ||||||||
| Check if N and Its double Exist | Easy | 30 m | |||||||||
| Remove Duplicate From Sorted Array | Easy | 30 m | |||||||||
| Array Deletions | Easy | 30 m | |||||||||
| Merge Sorted Arrays | ❌ | ||||||||||
| 3 |