DSA Simplified - Designed by Engineers for Engineers, YouTube Channel
Goal is not to learn each and every new framework or language out there, the goal is to get better at problem solving! PERIOD. DSA Simplified is your one-stop shop for all DSA queries! Here you will find implementation of all sorts of data structures and algorithms.
To get ahead of the curve you need to go through these 3 rules of fight club.
- Learning Curve - Implement algorithms by yourself.
- Code out data structures, till concepts are clear, Implement Stack with Push() and Pop() operations which run on O(1) time complexity.
- Problem Solving - This is where the real game begins!
- The Beginning:
- Initially nothing will make sense, don't worry, this is just a start.
- The Question:
- Read the question and try to pick hints, slowly you'd learn to recognise patterns just by reading the question.
- The Solution:
- Initially your solution won't even pass 5 test cases. Point is it doesn't matter but the good news is now you are able to think based on the problem.
- Steal the code:
- Try to solve the problem at least for 30 mins before you jump to the discussion tab. Find the best suitable solution and copy paste their entire logic, No one is judging you.
- Debug the code:
- Debug copied the solution and figured out what the missing puzzle was? Guess what!! Next time when you come across the same pattern you'll know what to do because you've seen this pattern. This is how I learned how to use remainder (%) LOL. That's one pattern, slowly you'd be able to figure out when to use Trie or Union-Find. Stay consistent and code for good.
- The Beginning:
- keep your track record on! Consistency is key my friend. You can master anything if you're consistent enough.
You can make me your leetcode partner Rikam!
Code | Best | Avg | Worst | Space | Learn Here |
---|---|---|---|---|---|
Bubble Sort | O(n) | O(n^2) | O(n^2) | O(1) | Back To Back SWE |
Insertion Sort | O(n) | O(n^2) | O(n^2) | O(1) | Back To Back SWE |
Selection Sort | O(n^2) | O(n^2) | O(n^2) | O(1) | Mycodeschool |
Quick Sort | O(n Log(n)) | O(n Log(n)) | O(n^2) | O(n Log(n)) | Back To Back SWE |
Heap Sort | O(n Log(n)) | O(n Log(n)) | O(n Log(n)) | O(1) | Back To Back SWE |
Merge Sort | O(n Log(n)) | O(n Log(n)) | O(n Log(n)) | O(n) | Back To Back SWE |
Trie : Example
Trie | Time | Space |
---|---|---|
Build Trie | O(n^2) | O(n^2) |
Lookup | O(n) | O(1) |
Push | Pop | |
---|---|---|
Stack with List | O(1) | O(1) |
Stack with Array | O(1) | O(1) |
Enqueue | Dequeue | |
---|---|---|
Queue with List | O(1) | O(1) |
Insert | Delete | Lookup | |
---|---|---|---|
Doubly Linked List | O(1) | O(1) | O(n) |
- DFS: Depth First Search
Time | Space | |
---|---|---|
DFS with Recursion | O(v + e) | O(v) |
DFS with Stack | O(v + e) | O(v) |
- BFS: Breadth First Search
Time | Space | |
---|---|---|
BFS with Recursion | O(v + e) | O(v) |
BFS with Queue | O(v + e) | O(v) |
Time | Space | |
---|---|---|
Shortest Path | O(v^2 + e) | O(v) |
Time | Space | |
---|---|---|
Topological Sort | O(v + e) | O(v + e) |
Build Heap | Insert | Remove | |
---|---|---|---|
MinHeap Iterative | O(n Log(n)) | O(Log(n)) | O(Log(n)) |
MaxHeap Recursive | O(n Log(n)) | O(Log(n)) | O(Log(n)) |
Leetcode Question | Solution | Time Complexity | Space Complexity | Data Structure |
---|---|---|---|---|
1. Two Sum | Two Sum | O(n) | O(n) | Array |