Detailed Weekly Plan: Algorithm Efficiency & Time Complexity Mastery
=====================================================================
🗓 WEEK 1: Big-O & Sorting Algorithms
-------------------------------------
✅ Objectives:
- Understand time and space complexity (Big-O)
- Learn and implement sorting algorithms
- Analyze time complexity of different sorts
📘 Study:
- Big-O Notation: O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ)
- Merge Sort, Quick Sort, Heap Sort, Counting Sort
🧠 Practice:
- LeetCode: Sort an Array
- Implement merge sort and quick sort from scratch
- Determine time complexity for small Python functions
🎯 Goal: 5–10 problems
🗓 WEEK 2: Searching & Recursion/Backtracking
----------------------------------------------
✅ Objectives:
- Master binary search and search space techniques
- Learn backtracking structure and pruning
- Solve recursive problems effectively
📘 Study:
- Binary Search, Search in Rotated Array, Peak Element
- Backtracking: Subsets, Permutations, N-Queens
🧠 Practice:
- LeetCode: Binary Search, Subsets, Letter Combinations
- Identify time complexity of recursive solutions
🎯 Goal: 10 problems
🗓 WEEK 3: Sliding Window & Two Pointers
-----------------------------------------
✅ Objectives:
- Optimize nested loops to linear time using windowing
- Solve substring, array, and trapping water problems
📘 Study:
- Fixed/variable sliding window, left-right pointers
🧠 Practice:
- LeetCode: Longest Substring Without Repeating Characters
- Minimum Window Substring, Trapping Rain Water
🎯 Goal: 10 problems
🗓 WEEK 4: Dynamic Programming (DP)
-----------------------------------
✅ Objectives:
- Transition from brute-force recursion to DP
- Solve overlapping subproblem problems efficiently
📘 Study:
- Fibonacci, LIS, LCS, Knapsack, Matrix DP
🧠 Practice:
- LeetCode: House Robber, Coin Change, Unique Paths
- Practice tabulation and memoization approaches
🎯 Goal: 10–15 problems
🗓 WEEK 5: Greedy & Graph Basics
---------------------------------
✅ Objectives:
- Use greedy strategy where local optimum = global optimum
- Learn BFS/DFS, connected components
📘 Study:
- Activity Selection, Jump Game
- BFS/DFS for Matrix and Adjacency Lists
🧠 Practice:
- LeetCode: Jump Game, Merge Intervals, Number of Islands
- Implement BFS/DFS on graphs
🎯 Goal: 10 problems
🗓 WEEK 6: Advanced Graphs, Bit Manipulation, Tries
----------------------------------------------------
✅ Objectives:
- Solve shortest path, Union-Find, and Trie problems
- Master bit-level problem-solving
📘 Study:
- Dijkstra’s, Union-Find, Bitmask DP, Prefix Sum, Tries
🧠 Practice:
- LeetCode: Course Schedule, Maximum XOR, Single Number
🎯 Goal: 10–15 problems