Java DSA Notes
1. Time and Space Complexity
- Big O Notation
- Best, Worst, Average case
- Space optimization
2. Arrays
- One dimensional and 2D arrays
- Common problems: Two Sum, Max Subarray, Rotate Array
3. Strings
- StringBuilder vs String
- Palindrome, Anagram, Reverse string
4. Linked List
- Singly and Doubly Linked List
- Fast & slow pointer technique
- Cycle detection (Floyd’s algorithm)
5. Stacks and Queues
- Stack using array and linked list
- Queue and Circular queue
- Problems: Valid Parentheses
6. Recursion
- Base condition & recursive calls
- Fibonacci, Factorial
- Backtracking basics
7. Trees
- Binary Tree and Binary Search Tree (BST)
- Tree Traversals (Inorder, Preorder, Postorder)
- Height, Diameter of tree
8. Graphs
- Representation: Adjacency list/matrix
- BFS, DFS
- Shortest path: Dijkstra, Bellman-Ford
9. Sorting Algorithms
- Bubble, Selection, Insertion
- Merge sort, Quick sort
- Time complexities
10. Dynamic Programming
- Memoization vs Tabulation
- Knapsack, LIS, LCS basics