Data Structures and Algorithms
- Linear and Non-Linear Data Structure
- Adjacency matrix and adjacency list implementation
- Web crawler – Breadth-First Search
- Maze problem
- Topological ordering
- Finding shortest path with topological ordering
- Detecting Cycles in a Directed Graph
- Array data structure
- Linked list data structure
- Doubly linked list
- Finding the Middle Node of a Linked List in Java
- Reversing the linked list in place (without using extra space)
- Understanding Stack Abstract Data Type (ADT)
- Queue Data Structure
- Java ArrayDeque
- Custom HashMap in Java
Tree and Graph
- Introduction to Graph
- Tree Data Structure – Introduction
- Breadth First Search Algorithm
- Depth First Search Algorithm
- Shortest path method – Dijkstra Algorithm
Sorting
- Bubble Sort in Java
- Insertion Sort in Java
- Selection Sort in Java
- Merge Sort in Java
- Sorting an array of 0s, 1s, and 2s – Dutch National Flag Algorithm
- Quick Sort in Java
Searching
Binary Tree
- Binary Tree in Java
- Traversal orders in a Binary Tree
- Recursive PreOrder Traversal of a Binary Tree in Java
- Iterative Preorder traversal of a Binary Tree in Java
- Recursive Inorder Traversal of a Binary Tree
- Iterative Inorder Traversal of a Binary Tree
- Recursive Postorder Traversal of a Binary Tree
- Iterative Postorder Traversal of a Binary Tree
- Level Order Traversal of Binary Tree
- Finding the Maximum Value in a Binary Tree (Recursive Approach)
- Binary Search Tree (BST)
- Inserting a Value into a Binary Search Tree (BST)
- Search in a Binary Search Tree (BST)
- Validating a Binary Search Tree (BST)
- Symmetric Tree
Intervals
- Understanding Intervals and Overlapping Intervals
- Merging Overlapping Intervals
- Insert Interval Problem
Big O Notation & Algorithm Complexity
- Big O Notation & Algorithm Complexity — Why It Matters and How to Understand It
- Understanding and Evaluating Algorithm Complexity
- Understanding Best Case, Worst Case, and Comparing Algorithm Complexities
- Comparing Functions Mathematically
- Understanding Big-O Notation
- Typical Complexities in Algorithm Analysis
- Advanced Complexity Evaluation: Addition, Multiplication, Logarithms, and Strings
- Amortized Analysis
- Space Complexity
Coding Patterns
- Sliding Window Technique
- Islands (Matrix Traversal) Coding Pattern
- Two Pointers coding pattern
- Fast and Slow Pointers Coding Pattern
- Merge Intervals Coding Pattern
- Cyclic Sort Coding Pattern
- In-Place Reversal of a Linked List
- Two Heaps Coding Pattern
- Subsets Coding Pattern
- Bitwise XOR Coding Pattern
- Top K Elements Coding Pattern
- K-Way Merge Coding Pattern
- 0/1 Knapsack Coding Pattern
- Fibonacci Numbers Coding pattern
- Palindromic Subsequence Coding Pattern
- Longest Common Substring Coding Pattern