- Arrays
- Linkedlist
- Stack
- Queue
- Hash table
- Tree
- Heap
- Prioriry queue
- Graph
- Trie
- B-tree
- LRU
-
Brute-force
-
Recursion
-
Divide and conquer
-
Sorting and Searching
- Binary search
- Merge sort
- Quick sort
- String searching
- KMP
- Rabin-Karp
- Boyer Moore (Bad Character Heuristic)
- Suffix array
- Suffix tree
- Manacher's
-
Greedy Algorithms
- Activity Selection
- Kruskal’s Minimum Spanning Tree Algorithm
- Huffman Coding
- Prim’s Minimum Spanning Tree Algorithm
- Job Sequencing Problem
-
Dynamic Programming
- Dijkstra’s Shortest Path Algorithm
-
Backtraking
-
Randomized Algorithms
-
Branch and Bound
-
Sliding window
- fixed size window
- dynamic size window
-
Two pointer or Iterators
-
Fast and slow pointers
-
Marge Intervals
-
Cyclic sort
-
Inplace reversal of linkedlist
-
Tree BFS
-
Tree DFS
-
Two heaps
-
Subsets
-
Modified binary search (mid=start+(end-start)/2)
-
Top k elements
-
k-ways merge
-
Topological sort
- Bit.ly, goo.gl (Short url app)
- Instagram (Photo sharing app)
- Facebook, Twitter, LinkedIn (Social media app)
- Parking lot
- Bookmyshow, MMT (ticket booking app)
- Singleton
- eager
- lazy
- Factory
- Builder
- Proxy
- remote
- protection
- MVC
- Decorator
- Core Java [Multi-threading, Collections, Java8]
- JavaScript
- Spring boot,data,cloud,security
- Mysql
- Mongodb
- Redis
- Elasticsearch
- Kafka
- SQS
- AWS
- Cracking the coding interview (Gayle)
- Elements of programming interview (Adnan)
- Progamming interviews exposed (Jonh Mongan)
- Data structures and algorithms made easy (Narasimha)