- Linked Lists (insertion, deletion, search, reverse):
- Singly linked list
- Doubly linked list
- Stacks (push, pop, peek):
- Using arrays/slices
- Using linked lists
- Queues:
- Using arrays/slices
- Using linked lists
- Hash Tables (insert, delete, search)
- Basic implementation
- Trees (insertion, deletion, traversal: inorder, preorder, postorder):
- Binary tree
- Binary Search Tree (BST)
- AVL tree (self-balancing)
- Heaps (insert, delete, extract-min/max):
- Min-Heap
- Max-Heap
- Graphs (add edge, remove edge, search: DFS, BFS):
- Adjacency matrix
- Adjacency list
- Sorting Algorithms:
- Bubble sort
- Selection sort
- Insertion sort
- Merge sort
- Quick sort
- Heap sort
- Searching Algorithms:
- Linear search
- Binary search
- Graph Algorithms:
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Dijkstra’s algorithm (shortest path)
- Floyd-Warshall algorithm (all pairs shortest path)
- Dynamic Programming:
- Fibonacci sequence
- Longest Common Subsequence (LCS)
- Knapsack problem
- Coin change problem
- Backtracking:
- N-Queens problem
- Sudoku solver
- Subset sum problem
Number | Title | Difficulty | Check |
---|---|---|---|
1 | Two Sum | Easy | [x] |
49 | Group Anagrams | Medium | [x] |
217 | Contains Duplicate | Easy | [x] |
242 | Valid Anagram | Easy | [x] |