Easily navigate contest problems and analyze your performance

As an aspiring programmer, I like participating in LeetCode contests to improve my performance gradually. Sometimes I feel the need of practicing problems of a particular point (where I struggle the most) from the past contests to improve my solving time or skill. However, I believe there is currently no straightforward interface to navigate and filter the contest problems by points. Also, to track and analyze my progress on these contest problems I often find myself asking questions like:

  • How many problems did I solve for each point/difficulty level?
  • How much time do I usually take when solving problems of some particular difficulty level?
  • Am I improving my solving time for a difficulty level (e.g. for q3 or q4) as I practice more?
  • Am I solving enough problems above my rating level to learn new concepts?
  • How many contest problems did I solve each day?

I think LeetCode lacks such a performance tracking interface specific to contest problems (which might not be the prime focus of this platform). To solve this, I built a simple web application with the following core features:

  • Lists all the weekly and biweekly problems in a table with the attributes:

    • Contest name: clickable, allows sorting & searching
    • Problem name: clickable, allows sorting & searching
    • Associated points: allows sorting & searching
    • Problem Rating: allows both specific and range search, for example, a user can type 1600 or [1600:1900] or [1500:]. The ratings are based on this project.

    In addition, there are two more user-modifiable fields to indicate a solved problem and the duration to solve that:

    • Solved?: checkbox to mark a solved problem
    • Duration: once a problem is marked as solved, a user can enter the solving duration in minutes and hit enter to save. This field also allows for range searches. For example, a search like [:15] will show all the problems solved in 0 to 15 minutes.
  • Displays various interactable charts to visualize and analyze user’s progress such as:

    • Number of solved vs unsolved problems for each point
    • Duration of the latest solved problems of a particular point
    • Number of solved problems between duration intervals (intervals can be adjusted). For example, you might be interested in the 4-point problems that took between 30-60 mins to solve. Probably these are the problems where you learned something new or want to practice again.
    • Number of solved problems between rating intervals (intervals can be adjusted).
    • Number of problems solved per day over the last year.

This is a non-profit personal project that can be found at http://leetcode.badhon.ca. The interface (with some randomly filled solved problems) looks like this. The contest data is updated on a weekly basis.

image

I believe that this platform can help programmers of any skill level in their LeetCode contests journey. I am also open to adding new features in the future (whatever helps our coding community achieve their respective goals).

Happy coding!

Comments (0)