Files
algorithms/docs/weekly-schedule.md
T

466 lines
11 KiB
Markdown

# Weekly Schedule Template
## Week 1: Array Basics and Two Pointers
**Focus**: Master fundamental array operations and two pointers pattern
### Monday (May 17, 2026)
**Topic**: Array Basics Introduction
**Problems to Solve**:
1. Linear search in array
2. Find maximum/minimum in array
3. Array frequency counting
4. Basic array transformations
**Learning Resources**:
- Review `docs/01-foundations/array-basics.md`
- Practice with simple array problems
**Daily Goal**: 4 problems, 100% success rate
### Tuesday (May 18, 2026)
**Topic**: Two Pointers Fundamentals
**Problems to Solve**:
1. `twoSum` - Easy ✅
2. `maxArea` - Medium ✅
3. Basic two pointer practice (2 problems)
**Learning Resources**:
- Study `docs/01-foundations/two-pointers.md`
- Focus on opposite direction pointers
**Daily Goal**: 4 problems, understand movement logic
### Wednesday (May 19, 2026)
**Topic**: Array Transformations
**Problems to Solve**:
1. `sortedSquares` - Medium ✅
2. `intersection` - Easy ✅
3. Array rotation problems (2 problems)
**Learning Resources**:
- Practice two pointers on transformed arrays
- Study time complexity analysis
**Daily Goal**: 4 problems, master transformation logic
### Thursday (May 20, 2026)
**Topic**: Search Algorithms
**Problems to Solve**:
1. `binarySearch` - Easy ✅
2. `toGetClosestPoint` - Medium ✅
3. Binary search variations (2 problems)
**Learning Resources**:
- Study `docs/01-foundations/binary-search.md`
- Practice different search patterns
**Daily Goal**: 4 problems, O(log n) complexity
### Friday (May 21, 2026)
**Topic**: String Algorithms
**Problems to Solve**:
1. `isPalindrome` - Easy ✅
2. `isIsomorphic` - Medium ✅
3. String matching problems (2 problems)
**Learning Resources**:
- Apply two pointers to strings
- Study character frequency patterns
**Daily Goal**: 4 problems, string pattern mastery
### Saturday (May 22, 2026)
**Topic**: Advanced String Processing
**Problems to Solve**:
1. `backspaceCompare` - Medium ✅
2. `compress` - Medium ✅
3. Mixed string problems (2 problems)
**Learning Resources**:
- Study stack-based string processing
- Practice edge cases
**Daily Goal**: 4 problems, 80%+ success rate
### Sunday (May 23, 2026)
**Topic**: Week 1 Review
**Activities**:
- Review all solved problems
- Update `docs/progress.md`
- Complete daily practice log
- Identify weak areas for week 2
**Weekly Goal**: 28 problems completed
**Success Rate Target**: 85%+
---
## Week 2: Two Pointers Mastery and Binary Search
**Focus**: Deep dive into two pointers and binary search variations
### Monday (May 24, 2026)
**Topic**: Two Pointers Advanced
**Problems to Solve**:
1. Three sum problem
2. Remove duplicates from sorted array
3. Two pointers on unsorted arrays (2 problems)
**Learning Resources**:
- Advanced two pointers patterns
- Sliding window introduction
**Daily Goal**: 4 problems, understand optimization
### Tuesday (May 25, 2026)
**Topic**: Container Problems
**Problems to Solve**:
1. Trapping rain water
2. Container with most water variations
3. Subarray problems (2 problems)
**Learning Resources**:
- Study container optimization
- Practice area calculations
**Daily Goal**: 4 problems, master container logic
### Wednesday (May 26, 2026)
**Topic**: Binary Search Variations
**Problems to Solve**:
1. Search in rotated sorted array
2. Find minimum in rotated array
3. Binary search on answers (2 problems)
**Learning Resources**:
- Study `docs/01-foundations/binary-search.md`
- Practice search space reduction
**Daily Goal**: 4 problems, O(log n) mastery
### Thursday (May 27, 2026)
**Topic**: Fast/Slow Pointers
**Problems to Solve**:
1. Linked list cycle detection
2. Find duplicate number
3. Cycle detection variations (2 problems)
**Learning Resources**:
- Study Floyd's cycle detection
- Practice pointer movement
**Daily Goal**: 4 problems, cycle detection mastery
### Friday (May 28, 2026)
**Topic**: Prefix Sum Introduction
**Problems to Solve**:
1. Range sum queries
2. Prefix sum array construction
3. Subarray sum equals K (2 problems)
**Learning Resources**:
- Study `docs/01-foundations/prefix-sums.md`
- Practice range queries
**Daily Goal**: 4 problems, O(1) range queries
### Saturday (May 29, 2026)
**Topic**: Combined Patterns
**Problems to Solve**:
1. Binary search + two pointers
2. Prefix sum + sliding window
3. Mixed pattern problems (2 problems)
**Learning Resources**:
- Combine multiple patterns
- Practice pattern recognition
**Daily Goal**: 4 problems, pattern combination
### Sunday (May 30, 2026)
**Topic**: Week 2 Review
**Activities**:
- Review week 2 concepts
- Update progress tracking
- Practice weak areas
- Plan week 3
**Weekly Goal**: 28 problems completed
**Success Rate Target**: 80%+
---
## Week 3: String Patterns and Hash Tables
**Focus**: Master string algorithms and hash table fundamentals
### Monday (May 31, 2026)
**Topic**: String Fundamentals
**Problems to Solve**:
1. Reverse string
2. Valid palindrome
3. String rotation problems (2 problems)
**Learning Resources**:
- String manipulation patterns
- Two pointers for strings
**Daily Goal**: 4 problems, string mastery
### Tuesday (June 1, 2026)
**Topic**: String Matching
**Problems to Solve**:
1. Longest substring without repeating chars
2. Minimum window substring
3. Pattern matching problems (2 problems)
**Learning Resources**:
- Sliding window for strings
- Hash tables for character tracking
**Daily Goal**: 4 problems, O(n) string algorithms
### Wednesday (June 2, 2026)
**Topic**: Hash Table Basics
**Problems to Solve**:
1. Two sum with hash map
2. Contains duplicate
3. Frequency counting problems (2 problems)
**Learning Resources**:
- Hash table fundamentals
- Time complexity analysis
**Daily Goal**: 4 problems, O(1) lookups
### Thursday (June 3, 2026)
**Topic**: Hash Table Advanced
**Problems to Solve**:
1. Group anagrams
2. Hash map + two pointers
3. Advanced hash problems (2 problems)
**Learning Resources**:
- Complex hash table patterns
- Multiple data structures
**Daily Goal**: 4 problems, hash optimization
### Friday (June 4, 2026)
**Topic**: Data Structure Validation
**Problems to Solve**:
1. `isValidSudoku` - Medium ✅
2. `isDevided11` - Medium ✅
3. Validation problems (2 problems)
**Learning Resources**:
- Constraint satisfaction
- Grid validation patterns
**Daily Goal**: 4 problems, validation mastery
### Saturday (June 5, 2026)
**Topic**: Combined String and Hash
**Problems to Solve**:
1. Longest substring with at most K distinct chars
2. String hash problems (2 problems)
3. Mixed pattern problems (2 problems)
**Learning Resources**:
- Combine string and hash patterns
- Practice optimization
**Daily Goal**: 4 problems, pattern combination
### Sunday (June 6, 2026)
**Topic**: Week 3 Review
**Activities**:
- Review string and hash concepts
- Update progress tracking
- Practice interview-style problems
- Plan week 4
**Weekly Goal**: 28 problems completed
**Success Rate Target**: 80%+
---
## Week 4: Dynamic Programming Introduction
**Focus**: Introduction to dynamic programming concepts
### Monday (June 7, 2026)
**Topic**: DP Fundamentals
**Problems to Solve**:
1. Fibonacci sequence
2. Climbing stairs
3. Basic DP problems (2 problems)
**Learning Resources**:
- DP patterns: memoization vs tabulation
- Time/space complexity analysis
**Daily Goal**: 4 problems, DP introduction
### Tuesday (June 8, 2026)
**Topic**: 1D Dynamic Programming
**Problems to Solve**:
1. House robber
2. Maximum subarray
3. 1D DP problems (2 problems)
**Learning Resources**:
- State definition
- Transition equations
- Space optimization
**Daily Goal**: 4 problems, 1D DP mastery
### Wednesday (June 9, 2026)
**Topic**: DP Optimization
**Problems to Solve**:
1. Coin change (unbounded knapsack)
2. Longest common subsequence
3. DP optimization problems (2 problems)
**Learning Resources**:
- Space optimization techniques
- State compression
**Daily Goal**: 4 problems, DP optimization
### Thursday (June 10, 2026)
**Topic**: DP on Strings
**Problems to Solve**:
1. Word break
2. Edit distance
3. String DP problems (2 problems)
**Learning Resources**:
- DP for string problems
- 2D DP patterns
**Daily Goal**: 4 problems, string DP mastery
### Friday (June 11, 2026)
**Topic**: DP Review and Practice
**Problems to Solve**:
1. DP review problems
2. Mixed DP problems
3. Interview-style DP (2 problems)
**Learning Resources**:
- DP pattern recognition
- Optimization techniques
**Daily Goal**: 4 problems, DP pattern mastery
### Saturday (June 12, 2026)
**Topic**: Month 1 Review
**Activities**:
- Complete month 1 assessment
- Review all concepts
- Update progress tracking
- Identify areas for improvement
**Monthly Goal**: 112 problems completed
**Success Rate Target**: 80%+
### Sunday (June 13, 2026)
**Topic**: Rest and Planning
**Activities**:
- Rest day
- Plan month 2 goals
- Review weak areas
- Prepare for advanced topics
---
## Monthly Review Template
### Month 1 Summary
**Total Problems**: 112 problems
**Success Rate**: [Calculate percentage]
**Patterns Mastered**: Array basics, two pointers, binary search, strings, hash tables, DP introduction
**Time Spent**: [Hours]
**Key Achievements**:
- [List major accomplishments]
- [Patterns mastered]
- [Improvements noted]
**Areas for Improvement**:
- [Weak areas identified]
- [Concepts needing more practice]
- [Speed/accuracy targets]
### Month 2 Goals
- **Focus**: Intermediate patterns and advanced topics
- **Target**: 112 problems, 85%+ success rate
- **Key Areas**: Graph algorithms, tree algorithms, advanced DP
- **Practice**: More interview-style problems
---
## Daily Practice Template
For each day, use this structure:
### Date (Week X, Day Y)
**Today's Focus**: [Main topic/pattern]
**Problems Solved**:
1. [Problem Name] - [Difficulty] ✅/❌
- Pattern: [Pattern name]
- Time: [Complexity], Space: [Complexity]
- Learning: [Key insights]
2. [Problem Name] - [Difficulty] ✅/❌
- Pattern: [Pattern name]
- Time: [Complexity], Space: [Complexity]
- Learning: [Key insights]
**Key Insights**:
- [Main takeaways from today]
- [Surprising findings]
- [Important connections]
**Struggles**:
- [Areas where you had difficulty]
- [Concepts that were confusing]
**Questions for Review**:
- [Things to clarify later]
- [Concepts needing more practice]
**Tomorrow's Plan**:
- [Next day's focus areas]
- [Specific problems to practice]
- [Review topics]
---
## Tips for Success
### 1. Consistency
- Practice daily, even if only 1-2 problems
- Don't skip days
- Review regularly
### 2. Quality over Quantity
- Focus on understanding, not just completion
- Review solutions and learn new approaches
- Document insights
### 3. Pattern Recognition
- Identify patterns in problems
- Group similar problems
- Learn common approaches
### 4. Time Management
- Set realistic daily goals
- Track progress and adjust
- Don't spend too much time on one problem
### 5. Review and Reflect
- Weekly reviews help identify weak areas
- Monthly reviews show overall progress
- Adjust plan based on performance
---
**Note**: This schedule is flexible. Adjust based on your progress, learning style, and available time. The key is consistent practice and continuous learning.