My Progress
After 1 month of doing Codeforces and LeetCode contests, I’m back to report my progress and learnings.
In my first month, I completed 10 contests total:
- 4 Codeforces contests (Div 3 & Div 4)
- 6 LeetCode contests
My Ratings are now:
- Codeforces: 0 → 1092 (Newbie)
- LeetCode: 1486 (Top 18%) → 1758 (Top 9.55%)
The Difference Between LeetCode and Codeforces
LeetCode helps you get a job.
Codeforces helps you become a better problem solver.
LeetCode is largely about pattern recognition and implementation — identifying familiar templates and applying them bug-free.
Codeforces is about problem solving and scientific thinking — deriving solutions from observations and test cases.
A common thing I hear LeetCoders say is:
- “I can’t solve this because I’ve never seen it before.”
Codeforces forces you out of that pattern-matching mindset and trains you to reason through unfamiliar problems.
What “Deriving From Observations” Actually Means
-
Read the problem.
-
Make small observations:
- Order doesn’t matter.
- The exact value doesn’t matter.
- Only extremes matter (only the max/min affects the answer).
- The outcome depends on a tiny subset of the data.
- Parity matters — even indices behave one way, odd indices another.
- We always want to do X every turn because it’s optimal. Then quickly prove to yourself that doing Y guarantees a worse outcome.
- Sometimes the key insight is mathematical.
-
Test your observations:
- Run small test cases to validate them.
- If they fail, search for better observations.
-
Implement the code.
LeetCode often clearly states the observation or directly tells you what to do.
- Example: Find the longest increasing subsequence in an array.
- You’re guided to realize that you only care about increasing order and relative comparisons.
Other Thoughts
- Focus on yourself, not the cheaters 🙂
- Work deliberately on your weaknesses.
- Push yourself to solve problems that are slightly harder than what you’re used to.
Next Steps
Codeforces sounds scary, but it’s actually easy to get started.
There are more questions per contest, and the difficulty ramps up more gradually. If you’ve done interview prep before, you’ll usually be able to solve a few problems in Div 3 and Div 4 contests. That’s enough to get the ball rolling and start building confidence.
Codeforces also doesn’t require complex math to begin with. It focuses on discrete math and logical reasoning, not calculus.
My rule of thumb:
- When trying to improve your skills → do Codeforces
- When prepping for interviews → do LeetCode
Favorite Questions of the Month
Codeforces:
- Hourglass
- OutOfMemoryError
- The Robotic Rush
- Monster Game
- Product Queries
LeetCode:
- Find Maximum Value in a Constrained Sequence
- Minimum Operations to Reach Target Array
- Find Nth Smallest Integer With K One Bits
Shoutouts
If you’re on the fence about contests, I’d highly recommend trying them for a month. The growth compounds fast once you break out of the pattern-matching mindset.
Appendix
Codeforces Problem Breakdown (14 Questions)
- Binary Array Game↗ — Case analysis
- Social Experiment↗ — Math (Modulo)
- Hourglass↗ — Math
- Huge Pile↗ — Dynamic Programming
- Perfect Root↗ — Math
- Prefix Max↗ — Greedy
- Shifted MEX↗ — Longest consecutive subsequence
- OutOfMemoryError↗ — Simulation (with optimizations)
- The Robotic Rush↗ — Binary Search
- DBMB and the Array↗ — Math (Modulo)
- Reverse a Permutation↗ — Math + Greedy
- Replace and Sum↗ — Prefix Sum + Prefix Max
- Monster Game↗ — Binary Search
- Product Queries↗ — Dynamic Programming + Math (Factors & Sieves)
LeetCode Problem Breakdown (15 Questions)
My Focus Areas This Month
- Sorted Lists
- Binary Indexed Trees (BIT)
- Segment Trees
- Sparse Tables
- Bit Manipulation
- Combinatorics