Welcome to my 30-Day Python Data Structures and Algorithms (DSA) Learning Challenge! Here's my plan and progress:
- Day 1: Arrays: Reverse an array | Find max and min
- Day 2: Strings: Palindrome check | Anagram check
- Day 3: Linked Lists: Reverse a linked list | Detect cycle
- Day 4: Stacks: Implement stack | Balanced parentheses
- Day 5: Queues: Queue using stacks | Generate binary numbers
- Day 6: Hashing: Count distinct elements | First non-repeating character
- Day 7: Review and Solve Mixed Problems: Mixed problems
- Day 8: Trees: In-order traversal | Height of a binary tree
- Day 9: Binary Search Trees (BST): Insert a node | Check if BST
- Day 10: Heaps: Implement min-heap | K largest elements
- Day 11: Graphs: BFS | DFS
- Day 12: Tries: Insert and search word | Auto-suggestions
- Day 13: Segment Trees: Range sum query | Update value
- Day 14: Review and Solve Mixed Problems: Mixed problems
- Day 15: Sorting Algorithms: Quicksort | Mergesort
- Day 16: Searching Algorithms: Binary search | Linear search
- Day 17: Dynamic Programming (DP): Fibonacci series | Knapsack problem
- Day 18: Greedy Algorithms: Activity selection | Huffman coding
- Day 19: Backtracking: N-Queens | Subset sum
- Day 20: Divide and Conquer: Merge sort | Quick sort
- Day 21: Review and Solve Mixed Problems: Mixed problems
- Day 22: Graph Algorithms: Dijkstra's algorithm | Floyd-Warshall
- Day 23: Advanced Dynamic Programming: Longest increasing subsequence | Edit distance
- Day 24: Computational Geometry: Line intersection | Convex hull
- Day 25: Bit Manipulation: Count set bits | Non-repeating element
- Day 26: Advanced Data Structures: Fenwick tree | AVL tree
- Day 27: Review and Solve Mixed Problems: Mixed problems
- Day 28: Mock Interviews: Mock interviews
- Day 29: Real-world Problems: LeetCode challenges | HackerRank challenges
- Day 30: Review and Recap: Review all topics
Feel free to follow along or check out my progress!